日期:2014-05-19  浏览次数:20708 次

关于Httpwebrequest类
我用这个类去模拟进入网页,通过一个连接后进入一个页面(这个页面是框架页,而且我也知道这个框架页地址,)但是用httpwebrequest去进入这个页面的时候会提示这个网页使用的框架,你的浏缆器不支持框架,

这样描述吧   我用httpwebrequest   进入这个页面   http://www.test.com/reg.php   这个页面用了框架,顶部框架和底部框架两个,并且我事先知道了框架页址,我还应该再用这个httpwebrequest去连接一次这个框架地址么?   但这个站有计数功能,我进入http://www.test.com/reg.php   页面后它就会记录我进入了这个页面,它上面的框架地址就会无效,但是我不通过http://www.test.com/reg.php页面进入却又不行(感觉它是通过进入http://www.test.com/reg.php页面后记录了什么信息(我不能越过这个页面直接连进那个框架页地址)   我怎么才能实现呀   帮帮我

------解决方案--------------------
我觉得应该是没有设置好HttpWebRequest的相关属性。
楼主可以通过其它http抓包工具如httpdebuger先分析下正常访问这个页面时提交了那些数据,然后再根据这些数据来设置HttpWebRequest相关属性。
如:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strRequestUrl);
request.Headers.Add(HttpRequestHeader.AcceptCharset, "gb2312 ");
request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-cn ");
request.CookieContainer = cookie;
request.Referer = strReferer;//直接访问框架页时是不是这个没设对?
------解决方案--------------------
referer的作用是签定用户是从何处引用连接的, 很多网站都是通过这个referer来防止盗链。在访问B页面时,服务器不会关心你是否访问了A页面,主要是你的Web程序是否允许没有访问过A页面的客户端访问B页面。至于是否是和浏览器的效果一样,我想这还跟很多因素有关,如当前的cookie,session等。