我已在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
}
答案 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
的更多信息