【问题标题】:WebRequest follow redirectWebRequest 跟随重定向
【发布时间】:2012-01-05 20:09:21
【问题描述】:

我有一个页面 (url a),它使用 WebRequest 以编程方式提交表单。
接受表单请求的页面做了一堆东西,然后重定向到另一个页面(url b)

是否有可能执行 webrequest(读取、处理和重定向表单请求),然后使当前页面(url a)重定向到 webrequest 结束位置(url b)。

我目前有;

  HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url + postVars);  
  myRequest.AllowAutoRedirect = true;

  HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();  
  myRequest.AllowAutoRedirect = true;

  // Read response stream
  StreamReader myStream = new StreamReader(myResponse.GetResponseStream());  
  string response = myStream.ReadToEnd();  
  myResponse.Close();

这一切正常,除了myResponse.Close() 之后,一切都按预期进行,我仍然在 url a,而不是 url b,即发出请求的页面仍然是活动页面

关于我哪里出错的任何想法?还是有更好的想法?

我需要能够做到。

  • 打开页面a
  • 以编程方式向模块 b(另一页)提交表单
  • 被重定向到页面c(其中基于模块b的重定向)

这有意义吗?
提前致谢。

【问题讨论】:

  • AllowAutoRedirect 默认情况下是 true,它实际上并没有在您的示例中添加任何内容。 “我仍在 URL A 而不是 URL B”是什么意思?

标签: c# redirect httpwebrequest httpwebresponse


【解决方案1】:

我认为您对重定向的工作原理感到困惑 - 您向 Url A 发出 请求,但最终可能会收到来自 响应 strong>Url B 如果您在那里被重定向(并且 AllowAutoRedirect 设置为 true)。

客户端/请求者不会以任何形式或形式被重定向,只是对客户端请求的响应来自哪里。所以你的“活动页面”当然永远不会改变。

【讨论】:

  • 是的,问题更多的是来自 webrequest 的重定向是否会传播到调用页面,从它的声音来看,不会。谢谢。
猜你喜欢
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多