WebRequest遵循重定向

时间:2011-11-24 17:27:30

标签: c# redirect httpwebrequest httpwebresponse

我有一个页面(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的重定向)

这有意义吗? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

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

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