【问题标题】:POST requests redirects, but AllowAutoRedirects = false gives 302 exception, how to avoid it?POST 请求重定向,但是 AllowAutoRedirects = false 给出 302 异常,如何避免呢?
【发布时间】:2020-03-20 18:57:58
【问题描述】:

我正在制作一个工具来检查网站上的登录,AllowAutoRedirect = false 用 302 使程序崩溃, 在 AllowAutoRedirect = true 上发送所有标头和 cookie 和有效负载正常,但我需要在重定向之前从域中收集 cookie。

怎么做?谢谢。

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

payload
requestheaders

using (var stream = request.GetRequestStream())
{
      stream.Write(data, 0, data.Length);
      stream.Close();
}

request.AllowAutoRedirect = false; <-- crashes here (302 Found Exception)


var response = (HttpWebResponse)request.GetResponse();

【问题讨论】:

  • "AllowAutoRedirect=false" 表示“我将自己正确处理所有 302”。到目前为止,我没有看到任何迹象表明帖子中的代码正在这样做 - 请确保实际提供 minimal reproducible example,其中包括您如何处理 302。
  • 为了处理 302 意味着我需要做一个 try catch,但是在 try 中我需要有 var 响应,这意味着我可以在它之外使用它,我应该做什么? @AlexeiLevenkov,谢谢。

标签: c# redirect request header httpwebrequest


【解决方案1】:

添加一个try catch块解决了这个问题,在catch里面你可以得到来自服务器的响应并能够在那里处理响应。

try
{
     //All your request code here...
     var response = (HttpWebResponse)request.GetResponse();
     
}
catch (WebException ex)
{
     var response = ex.Response as HttpWebResponse;   
     //handle the request here
}

【讨论】:

  • 请添加一些关于你的代码是做什么的解释。
猜你喜欢
  • 2022-01-05
  • 2015-07-29
  • 2021-01-05
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
相关资源
最近更新 更多