【问题标题】:How can I detect if a URL is redirected to another one?如何检测一个 URL 是否被重定向到另一个 URL?
【发布时间】:2012-07-22 01:16:38
【问题描述】:

我使用此代码向网址发出“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.OK,而不是重定向代码。请问你有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我认为 OP 希望获得“重定向”而不是“OK”的状态代码,而您的答案只是关于如何处理重定向,而不是获得 OP 想要的状态代码。
    【解决方案2】:

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

    请注意,应该使用它而不是类似的 HttpWebResponse.ResponseUri,正如其文档所述:

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

    【讨论】:

      猜你喜欢
      • 2012-12-05
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多