我怎么能检测一个URL重定向到另一个?(How can I detect if a URL is r

2019-09-20 01:45发布

我用这个代码做一个“GET”请求的U​​RL。

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的重定向代码。 你有什么想法吗?

Answer 1:

您可以使用AllowAutoRedirect属性。 它设置为false和处理重定向自己。



Answer 2:

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

请注意,这应该被用于代替相似HttpWebResponse.ResponseUri ,作为其文档说:

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



文章来源: How can I detect if a URL is redirected to another one?