解析URL重定向

时间:2011-11-09 21:35:13

标签: c# url resolveurl

我已在http://freedns.afraid.org/设置了网址重定向,因此我可以将主机更改为应用程序下载的文件,而无需更改应用中的代码。

问题是我需要在下载文件之前解析正确的URL。我尝试了一种我在这里找到的方法,但它没有用(Webrequest)。

所以我认为他们不使用共同的重定向。

如何解决真实的网址/ IP?

更新:

我在freedns上有另一个子域名,如果你在那个域上执行了一个downloadstring,你就会得到它应该重定向到的页面。也许这些信息可以提供任何帮助。

UPDATE2:

以下是我用来获取其他网页的代码:

        WebClient client = new WebClient();
        string xml = client.DownloadString(new Uri("myfreednshere"));

因此,通过运行该代码,我获得了网页b的字符串,即“myfreednshere”重定向到。

这意味着webclient成功解析了url重定向。有没有我可以用来解决重定向的代码?

UPDATE3:

这是我通过httprequest获得的回复:

{X-Abuse: URL redirection provided by freedns.afraid.org - please report any misuse of this service
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Cache-Control: public, max-age=15
Content-Type: text/html
Date: Wed, 09 Nov 2011 21:55:21 GMT
Server: Apache/1.3.41 (Unix) PHP/5.3.6 with Suhosin-Patch
X-Powered-By: PHP/5.3.6

}

3 个答案:

答案 0 :(得分:2)

我注意到至少有一个fear.org网站(http://fb.afraid.org,我可以快速检查的唯一域名)不使用HTTP重定向,301重定向或代理。它使用框架。因此,您的原始代码应该有效:

    WebClient client = new WebClient();
    string xml = client.DownloadString(new Uri("myfreednshere"));

稍加修改后,我使用了这段代码:

    WebClient client = new WebClient();
    string html = client.DownloadString(new Uri("http://fb.afraid.org"));

调用的结果有三个地方的真实网址(http://www.fragbite.com),一次在评论中,一次在框架源中,一次在noframes标记中的链接中。如果您以编程方式需要,您应该能够解析该URL。

答案 1 :(得分:1)

WebClient类遵循重定向。尝试使用HttpWebRequest:

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.AllowAutoRedirect = false;

发出请求后,其中一个HTTP标题“Location”会给出重定向到的位置(但由于AllowAutoRedirect已关闭而没有关闭)

答案 2 :(得分:0)

所以你想要301重定向?

可以通过几种方式处理。如果这是.NET,并且如果您使用的是IIS 7,则可以使用URL重写模块(http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/),或者如果您知道自己是什么,也可以直接修改web.config文件做。

    <system.webServer>
  <httpRedirect enabled="true" destination="http://domain.com/products" httpResponseStatus="Permanent" />
</system.webServer>

请点击此链接,了解有关如何处理301 http://knowledge.freshpromo.ca/seo-tools/301-redirect.php

的更多信息