使用HttpWebrequest时操作Cookie的问题

莫名其 2012-03-08 03:34:02
具体需求如下:
假设我要用一个程序模拟下面这个网址中《确定》按钮的功能:http://list.qq.com/cgi-bin/qf_invite?id=3ef0963350a0570a66a32f2d3dbffc75c190b23cc7690702

此程序需要在短时间内多次模拟发送请求的操作。
但是它自从第三次起会要求输入验证码,甚至会直接提示操作频繁稍后再试。

问题1:
能不能每次操作都不用输入验证码直接提交?
若能,怎么实现?

问题2:
如何从它返回的提示输入验证码的页面中提取验证码图片?
因为根据验证码图片地址获取的话每次都会重新生成一个新的图片,将会导致验证失败。

我当前使用的代码如下:

string postData = "t=qf_booked_feedback&id=3ef0963350a0570a66a32f2d3dbffc75c190b23cc7690702&to=999999999@qq.com";
//验证码
string verifycode_cn = txtVal.Text.Trim();
//如果输入了验证码
postData += verifycode_cn.Length > 0 ? "&verifycode_cn=" + verifycode_cn : "";

ASCIIEncoding encoding=new ASCIIEncoding();
byte[] data = encoding.GetBytes(postData);

// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://list.qq.com/cgi-bin/qf_compose_send");

///测试代码
//CookieContainer mc = new CookieContainer();
//myRequest.CookieContainer = mc;
///测试结束

myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();

// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();

// Get response
HttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();

StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string content = reader.ReadToEnd();
reader.Close();

//测试用代码,查看结果
this.richTextBox1.AppendText(content);
this.webBrowser1.DocumentText = content;


...全文
195 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫名其 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xinshoubbs 的回复:]
返回的里面应该取不到图片把,貌似只能默认每次都输入验证码。
现读取验证码图片,然后根据该cookie去post
[/Quote]
都说着取不到图片了,又怎么先读取验证码图片?
虽然没什么帮助,还是谢谢吧

小皮不姓皮 2012-03-08
  • 打赏
  • 举报
回复
返回的里面应该取不到图片把,貌似只能默认每次都输入验证码。
现读取验证码图片,然后根据该cookie去post
莫名其 2012-03-08
  • 打赏
  • 举报
回复
嗯先谢过5楼,我去下下来看看
烟波钓 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 jorln 的回复:]
问题1:
能不能每次操作都不用输入验证码直接提交?
若能,怎么实现?

问题2:
如何从它返回的提示输入验证码的页面中提取验证码图片?
因为根据验证码图片地址获取的话每次都会重新生成一个新的图片,将会导致验证失败。

[/Quote]
建议lz下载那个德广火车票的外挂的源码 看看那里面对验证码是如何处理的
xiaowanzifasff 2012-03-08
  • 打赏
  • 举报
回复
拿到总是session_id
莫名其 2012-03-08
  • 打赏
  • 举报
回复
很无奈的问句...为啥没人回答这个问题..

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧