C# 控制台应用程序未获得中间重定向 (http 302)
C# console application not getting intermediate redirects (http 302)
我正在尝试使用 C# 控制台应用程序中的 HttpWebRequest 从 URL 下载一些数据。在浏览器和 Postman 中,它工作正常但不是来自应用程序 - 它没有 return 预期的数据。使用 Fiddler,我检查了请求,我发现最初发送的请求实际上被重定向了三次(我在最终的 Http 200 响应之前在 Fiddler 中看到了三个 http 302)并最终 returns 数据。但是,从我的 C# 控制台应用程序中,我只得到最终响应——HttpWebResponse 状态总是给出 "OK" (200).
我在 fiddler 中注意到 http 302 return 的 cookie 很少,随后的请求在其 header 中发送了 cookie。这在 browser/postman 中得到了正确处理,但我无法在我的应用程序中执行此操作。任何帮助将不胜感激。
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
我相信您正在寻找 AllowAutoRedirect
属性 个 HttpWebRequest
class。将其设置为 false
应该可以做到:
HttpWebRequest request = new HttpWebRequest(someUri);
request.AllowAutoRedirect = false;
您可以阅读有关 HttpWebRequest
here 的更多信息。
我正在尝试使用 C# 控制台应用程序中的 HttpWebRequest 从 URL 下载一些数据。在浏览器和 Postman 中,它工作正常但不是来自应用程序 - 它没有 return 预期的数据。使用 Fiddler,我检查了请求,我发现最初发送的请求实际上被重定向了三次(我在最终的 Http 200 响应之前在 Fiddler 中看到了三个 http 302)并最终 returns 数据。但是,从我的 C# 控制台应用程序中,我只得到最终响应——HttpWebResponse 状态总是给出 "OK" (200).
我在 fiddler 中注意到 http 302 return 的 cookie 很少,随后的请求在其 header 中发送了 cookie。这在 browser/postman 中得到了正确处理,但我无法在我的应用程序中执行此操作。任何帮助将不胜感激。
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
我相信您正在寻找 AllowAutoRedirect
属性 个 HttpWebRequest
class。将其设置为 false
应该可以做到:
HttpWebRequest request = new HttpWebRequest(someUri);
request.AllowAutoRedirect = false;
您可以阅读有关 HttpWebRequest
here 的更多信息。