解析URL重定向

本文关键字:重定向 URL 解析 | 更新日期: 2023-09-27 18:13:54

我已经在http://freedns.afraid.org/上设置了一个URL重定向,这样我就可以将主机更改为应用程序下载的文件,而无需更改应用程序中的代码。

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

所以我猜他们没有使用通用的重定向。

如何解析真实的url/ip?

更新:

我在freedns上有另一个子域名,如果你在那上面做一个下载字符串,你会得到它应该重定向到的页面。也许这些信息会对你有帮助。

更新2:

下面是我用来获取其他网页的代码:
        WebClient client = new WebClient();
        string xml = client.DownloadString(new Uri("myfreednshere"));

通过运行这段代码,我得到了网页b的字符串,"myfreednshere"重定向到。

表示web客户端成功解析了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
}

解析URL重定向

我注意到至少有一个afraid.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"));
调用的结果

在三个地方有真实的url (http://www.fragbite.com),一次在评论中,一次在框架源中,一次在noframes标记中的链接中。你应该能够解析出url如果你需要它的编程。

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

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

发出请求后,其中一个HTTP标头"Location"给出了它被重定向到的位置(但没有遵循,因为AllowAutoRedirect是关闭的)

所以你想要301重定向?

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

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

点击此链接获取更多关于如何处理301的信息http://knowledge.freshpromo.ca/seo-tools/301-redirect.php