HttpWebRequest编程过程中属性AllowAutoRedirect 一定要设置为true,除非有特别的捕获要求。
这个属性是让WebRequest自动完成跳转功能。
但是有个非常奇怪的问题,这种跳转有的时候是很奇特的。
简单来讲:
- 访问page1.aspx;
- 跳转到page2.aspx;
- 在跳转到page3.aspx;
在httpwebrequest中这种跳转可能完成,而且执行结束了,但是你通过httpwebresponse返回的html却可能不是page3.aspx的数据,而这时如果你要判断某个页面执行成功的方法就要想比较特殊的方法了。
要么主动控制异常的校验,要么看看对应的cookies的值是否获取到。
一般情况下,使用cookies判断最好,因为这种页面之间的跳转都是有cookies的产生的。
比如我在模拟msn space的登陆时,在httpwebrequest正常跳转完成后有12个cookies,而httpwebresponse返回的页面数据和我通过浏览器真实访问的数据却不一致,但是我的登陆完成,跳转完成。这时我必须人工告诉程序你执行OK了。
关于这点,当你遇到就会明白了。