C#控制台应用程序没有获得中间重定向(http 302)

时间:2016-12-16 22:19:26

标签: c# httpwebrequest fiddler webrequest

我正在尝试使用来自C#控制台应用程序的HttpWebRequest从URL下载一些数据。在浏览器和邮递员中,它工作正常但不是来自应用程序 - 它不返回预期的数据。使用Fiddler,我检查了请求,并且我发现最初发送的请求实际上被重定向三次(我在最后的Http 200响应之前在Fiddler中看到三个http 302)并最终返回数据。但是,从我的C#控制台应用程序中我只得到最终响应 - HttpWebResponse状态总是给出“OK”(200)。

我在提琴手中注意到http 302返回的cookie很少,后续请求会在其标题中发送cookie。这在浏览器/邮递员中正确处理,但我无法在我的应用程序中执行此操作。任何帮助将受到高度赞赏。

 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 

Fiddler screenshot

1 个答案:

答案 0 :(得分:2)

我相信您正在寻找AllowAutoRedirect课程的HttpWebRequest属性。将其设置为false应该做的事情:

HttpWebRequest request = new HttpWebRequest(someUri);  
request.AllowAutoRedirect = false;  

您可以阅读有关HttpWebRequest here

的更多信息