2

我使用此代码向网址发出“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 is: http://site.com

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

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

4

2 回答 2

4

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

于 2012-07-23T18:59:44.080 回答
0

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

请注意,应该使用它而不是类似的HttpWebResponse.ResponseUri,因为它的文档说:

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

于 2017-03-21T15:57:04.050 回答