0

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

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

所以我想他们不使用常见的重定向。

你怎么能解析真正的url/ip?

更新:

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

更新2:

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

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

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

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

更新3:

这是我通过 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

}
4

3 回答 3

2

我注意到至少有一个害怕.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。

于 2011-11-10T15:52:47.190 回答
1

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

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

发出请求后,HTTP 标头之一“Location”给出了它被重定向到的位置(但由于 AllowAutoRedirect 已关闭而未遵循)

于 2011-11-09T22:01:27.387 回答
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

于 2011-11-09T21:43:50.897 回答