0

我做了一个解析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或者如果我错了.

更新:

试过这个,但我得到了相同的网址,没有任何改变:

    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 Login data Then Redirect

他说

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

所以...如果我需要这样做,我该怎么做?

更新 3:

DownloadThemAllFirefox 的插件可以获取直接的 url...你可以看到所有的 url 都以 .mp3 文件扩展名结尾,这就是我需要的

在此处输入图像描述

4

4 回答 4

3

据我所知,网址

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

是直接 url,直接文件 url 不需要包含文件类型。

您可以使用下载文件

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);

您可以通过使用获取文件名(Madonna-Like A Virgin -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('"'));

这是未经测试的,但它应该工作。

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

于 2013-10-30T16:30:09.553 回答
1

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

于 2013-10-24T07:34:43.313 回答
1

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

于 2013-10-24T07:47:12.797 回答
1

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

然后该文件将在以下位置下载:http ://tinyurl.com/phzhxsr

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

于 2013-10-30T10:42:58.197 回答