最近研究利用HttpWebRequest和HttpWebRequestResponse实现彩票平台自动购彩功能,遇到一个问题如下:
用火狐浏览器,登录网站www4.hele8cp.com
1 string Url = "http://www4.hele8cp.com/ece.pr?name=uuid"; 2 3 //generate http request 4 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url); 5 6 req.CookieContainer = new CookieContainer(); 7 req.CookieContainer.Add(new Uri(Url), new Cookie("homeDox", "1")); 8 req.CookieContainer.Add(new Uri(Url), new Cookie("JSESSIONID", JSESSIONID)); 9 10 req.Method = "GET"; 11 req.Referer = "http://www4.hele8cp.com/ec/ec.html"; 12 //use request to get response 13 HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 14 15 StreamReader sr = new StreamReader(resp.GetResponseStream()); 16 this.textBox1.Text = sr.ReadToEnd();
明明值发送了一次请求,至于你说第二次请求还是空,那应该是会话状态没保持.你保存下cookie和url参数在第二次请求时也发回去
我一开始可能没描述清楚,现修改了一下问题描述,烦请查阅。
那会不会是因为,你使用了那个session。它认为你已经获取过那个值了,就不想再传给你了。
你把第二次请求时的http头信息全部弄到httpWebRequest里再试试看?
你能把你发起的两次请求的的包也给抓下来同浏览器的对比下吗?
host信息放进去了么.?
LZ,一般这样的网址都做了cookie验证 例如JS动态加载的cookie 细心点看看 有没有少传啥子东西
首先 CookieContainer
必须是全局唯一的
你每次new 那就是 新的 cookie了 而不是以前的那个
ps:换句话说 浏览器如果不关闭 那么一直 都使用的是1个cookiecontainer
第二个问题 你说的2次访问说实话 我没弄明白什么意思
正解
明显就是CookieContainer没有处理好,正如@小眼睛老鼠 说的,要不,我给你一份代码?
我也有遇到类似的问题,这位大侠能发一份代码给我吗,我邮箱:22566581@qq.com,谢谢。
是不是漏掉了什么参数?问题解决了吗?