解析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
}
我注意到至少有一个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