如何检测URL是否被重定向到另一个?
问题描述:
我使用此代码向网址发送'GET'请求。如何检测URL是否被重定向到另一个?
var request = WebRequest.Create(uri) as HttpWebRequest;
request.Method = "GET";
var response = request.GetResponse() as HttpWebResponse;
var status = response.StatusCode; // returns HttpStatusCode.OK
所以,probelem是当一个url被重定向到另一个时,我无法检测到它。例如, ;
url is: http://site.com
that redirects to http://www.site.com
但是当我主动要求http://site.com
它返回一个HttpStatusCode.OK
它-instead的重定向代码。请问你有什么想法吗?
答
使用HttpWebRequest.Address属性,它
注意,这应该使用类似HttpWebResponse.ResponseUri的,因为它的文档中说“是完整的请求过程中发生的任何重定向后的URI”被明确定义为:
的应用程序需要访问的最后一个重定向ResponseUri 应该使用HttpWebRequest..::..Address属性,而不是 ResponseUri,因为使用ResponseUri财产可能会打开安全漏洞 。
我认为OP希望得到“重定向”状态代码而不是“OK”,你的答案就是如何处理重定向,而不是获取OP所需的状态码。 – 2012-07-23 19:03:27
@MikyDinescu它的工作原理。谢谢 – 2012-07-23 19:11:50