如何检测URL是否重定向到另一个?

时间:2012-07-23 18:57:02

标签: c# httpwebrequest http-status-codes httpwebresponse http-redirect

我使用此代码向网址发出'GET'请求。

var request = WebRequest.Create(uri) as HttpWebRequest;
request.Method = "GET";
var response = request.GetResponse() as HttpWebResponse;
var status = response.StatusCode; // returns HttpStatusCode.OK

所以,探测器是当一个url被重定向到另一个url时,我无法检测到它。 例如;

url is: http://site.com

that redirects to http://www.site.com

但是当我向http://site.com发出请求时,它会为其返回HttpStatusCode.OK - 而不是重定向代码。你有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用AllowAutoRedirect属性。将其设置为false并自行处理重定向。

答案 1 :(得分:0)

使用HttpWebRequest.Address属性,该属性明确定义为“在请求完成期间发生的任何重定向后的URI”

请注意,应该使用此代替类似的HttpWebResponse.ResponseUri,因为其文档说明:

  

需要访问上次重定向的ResponseUri的应用程序   应该使用HttpWebRequest..::..Address属性而不是   ResponseUri,因为使用ResponseUri属性可能会打开安全性   漏洞。

相关问题