繁体   English   中英

重定向URL以获得直接URL

[英]Redirect url to obtain the direct url

我做了一个解析html文档,然后获取一些url的应用程序,问题是只能直接从导航器下载url。

在VB.NET或C#中,我如何重定向此URL以获取直接链接,以便以后将其粘贴到下载管理器中以进行下载?

dim url as string = "http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033"

我需要说的是,我对http的东西没有太多的尝试,也许我错了,并且该URL有任何要重定向的内容或类似的错误,请只说我如何重定向这种类型的URL,或者如果我错了。

更新:

试过这个,但是我得到了相同的URL,没有任何更改:

    Dim url As String = _
    "http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033"

    Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create(url), HttpWebRequest)
    request.AllowAutoRedirect = True
    Dim response As HttpWebResponse
    Dim resUri As String
    response = request.GetResponse
    resUri = response.ResponseUri.AbsoluteUri
    MsgBox(resUri)

更新2:

在这里的答案中HttpWebRequest登录数据然后重定向

他说

如果重定向是透明处理的,则_response.ResponseURI将包含重定向到的地址。 如果不是,则必须阅读重定向标头并自行决定是否请求新页面。

所以...如果我需要做那件事,我该怎么做?

更新3:

Firefox的DownloadThemAll插件可以获取直接网址...正如您所看到的,所有网址都以.mp3文件扩展名结尾,这就是我需要的

在此处输入图片说明

据我所知,网址

http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333

是直接网址,直接文件网址不需要其中的文件类型。

您可以使用下载文件

string url = "http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033"
WebClient wc = new WebClient();
wc.DownloadFile(url, fileName);

您可以通过使用以下命令获取文件名(麦当娜式的维珍航空公司-www.mrtzcmp3.net.mp3)

HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
string header =  myHttpWebResponse.Headers.ToString();
fileName = header.Remove(0, header.IndexOf("filename=")+10);
fileName = fileName.Remove(fileName.IndexOf('"'));

这未经测试,但应该可以。

编辑:我认为这是您想要的,但是我可能误解了您的问题

使用HttpWebRequest并使用AllowAutoRedirect=true获取直接链接并下载文件。

您可以使用Web客户端执行Web请求以从该URL获取内容(URL),然后只需要执行重定向即可。

您可以尝试将URL粘贴到诸如tinyUrl或BitLy的URl缩短器中吗? 也许有提供API的简化服务?

然后将文件下载到: http : //tinyurl.com/phzhxsr

您将永远不会从站点所有者那里获得直接URL,因为该URL是动态解析的,并且文件是与retrun数据流一起发送的,而不是通过下载特定的URL来发送的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM