实现记录投票者信息

人在江湖漂那能不挨刀 2012-06-11 10:08:34
客户要求在我们系统增加一个投票记录模块,投票网站是客户上级部门的一个网站。
投票地址:http://survey.wenming.cn/survey/882/index.jsp

客户要求,通过我们投票记录模块,能记录投票人,投票时间等信息。

我怎么才能通过我们系统进行投票。

我不知道怎么抓取 投票网站的数据包,如果能抓取,就可以HttpWebRequest来处理
...全文
370 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
该问题已经解决,要是能获取验证码就好了
铜臂阿铁木 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

考虑到需要验证码,我改成半自动化投票,
1、获取验证码图片
2、人工输入验证码
3、进行投票

发现一个破问题:使用WebClient 获取验证码,在提交,session 变化了,总提示验证码不正确。
我该怎么让session一致呢
[/Quote]

用同一个Context来获取session
  • 打赏
  • 举报
回复
如果 myWebClient.Headers.Add("Cache-Control", "no-cache"); 不要,提示:远程服务器返回错误: (500) 内部服务器错误。
  • 打赏
  • 举报
回复
获取提交投票的header:
POST /survey.do?action=vote HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://survey.wenming.cn/survey/882/index.jsp?COLLCC=3047260797&
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: survey.wenming.cn
Content-Length: 132
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: wdcid=00bc6a4e9ae23747; JSESSIONID=C1476A13010617404CCF162BAFB2600C; X-Mapping-emhkgbed=97657EAAD946D70C49593E581B598403

sId=882&id_961=10433&id_961=10788&USERNAME=%E8%B0%88%E6%83%85&FIELD1=%E5%8C%97%E4%BA%AC&verifyCode=1352&VOTECOUNT=%E6%8A%95%E7%A5%A8

-------------------------
投票代码:
string uriString = "http://survey.wenming.cn/survey/882/survey.do?action=vote";
WebClient myWebClient = new WebClient();
string postData = null;
byte[] byteArray;
byte[] responseArray;
WebHeaderCollection myWebHeaderCollection;

postData = "sId=882&id_961=10433&id_961=10788&USERNAME=%E8%B0%88%E6%83%85&FIELD1=%E5%8C%97%E4%BA%AC&verifyCode=1352&VOTECOUNT=%E6%8A%95%E7%A5%A8
";
myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
myWebClient.Headers.Add("Referer", "http://survey.wenming.cn/survey/882/index.jsp");
myWebClient.Headers.Add("Accept-Language", "zh-cn");
myWebClient.Headers.Add("Cache-Control", "no-cache");
myWebClient.Headers.Add("Cookie", "Cookie: wdcid=00bc6a4e9ae23747; JSESSIONID=C1476A13010617404CCF162BAFB2600C; X-Mapping-emhkgbed=97657EAAD946D70C49593E581B598403
");
myWebHeaderCollection = myWebClient.Headers;

byteArray = System.Text.Encoding.Default.GetBytes(postData);
responseArray = myWebClient.UploadData(uriString, "POST", byteArray);


报404错误,怎么回事
  • 打赏
  • 举报
回复
考虑到需要验证码,我改成半自动化投票,
1、获取验证码图片
2、人工输入验证码
3、进行投票

发现一个破问题:使用WebClient 获取验证码,在提交,session 变化了,总提示验证码不正确。
我该怎么让session一致呢
wuyq11 2012-06-12
  • 打赏
  • 举报
回复
记录投票信息,还是座用户登录模块,记录用户登录信息
检查服务器是否匿名操作
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
这些信息在HttpHeader或者Context中都有简单的记录。
[/Quote]
能详细说明怎么处理
铜臂阿铁木 2012-06-11
  • 打赏
  • 举报
回复
这些信息在HttpHeader或者Context中都有简单的记录。
  • 打赏
  • 举报
回复
没有人会吗

111,126

社区成员

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

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

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