假如现在有两个网址:A,B
在IE上直接打开A(带参数的)A收到参数进行解析并生成新的参数跳转到B。用HttpWebRequest发起请求,请求A得到的返回流是A解析完后的一个html,里面有一个form包括B的地址和参数,并不是最终跳转到B后的结果,如果再取返回的地址和参数再次请求太麻烦了,因为返回的请求参数可能有10多个。有没有什么方法可以直接把A返回的这个html不用分析直接请求得到返回流。我把A返回的HTML放到webBrowser控件中可以直接得到跳转到B后的结果,但是我不想用webBrowser控件,能不能直接用webBrowser类?

解决方案 »

  1.   

    我记得HttpWebRequest支持重定向的,AllowAutoRedirect这个属性默认是true吧
    如果B不返回3XX状态码 那样只能重新抓取URL了
    关键是你请求B 返回的是什么?HTTP 200吗?
      

  2.   


    果然,设置 request.AllowAutoRedirect = true;
                    request.MaximumAutomaticRedirections = 1;
    就好了,谢谢了
      

  3.   

    获取数据后,通过HttpWebRequest重新访问页面获取数据
      HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(strURL);
                myHttpWebRequest.AllowAutoRedirect = true; 
                myHttpWebRequest.KeepAlive = true;