httpwebrequest验证码问题,请指教 我现在用httpwebrequest post一个表单到一个URL上,但是这个页面上是有需要验证码的。各位遇到这种情况,这个验证码是怎么得到值的。谢谢,我在测试的时候把那个验证码先给它写死,就是先从那个网站上抄下来,填入。但是查询到的数据是空的。有点类似自动登录这样的,但是有验证码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 num = HttpUtility.UrlEncode(num); carNum = HttpUtility.UrlEncode(carNum); type = HttpUtility.UrlEncode(type); code = HttpUtility.UrlEncode(code); btnText = HttpUtility.UrlEncode(btnText); string formatString = "num={0}&carNum={1}&carType={2}&rand={3}&submit={4}"; string postString = string.Format(formatString, num, carNum, type, code, btnText); byte[] postData = System.Text.Encoding.ASCII.GetBytes(postString); _httpRequest = WebRequest.Create(_url) as HttpWebRequest; _httpRequest.Method = "POST"; _httpRequest.ContentType = "application/x-www-form-urlencoded"; _httpRequest.ContentLength = postData.Length; System.IO.Stream outputStream = _httpRequest.GetRequestStream(); outputStream.Write(postData, 0, postData.Length); outputStream.Close(); HttpWebResponse rsObj = _httpRequest.GetResponse() as HttpWebResponse; return rsObj;我把这个rsObj返回回来,但是得到的HTML源代码结果不正确。说明:_url是post的地址, 好像有些程序能做到自动识别数字验证码,于是就有了很多变态的验证码:加干扰信息。楼主说的这个问题不大好解决,如果那个站点是自己的话,可以先把验证码的值传过来,作为参数的值再POST过去 我得到验证码的URL跟post上去得到结果的URL如果不一样的话可不可以。 第一步 httpwebrequest 请求主页面 获取cookie第2步,请求验证码(注意需要带上第一次请求得到的cookie) 把验证码保存下来 人为识别输入第3步 post数据 注意这一步需要用第一步的cookie和第2步的验证码这样才可以完成一次请求验证码识别劝你还是放弃吧 验证码识别比httpwebrequest要复杂多了。 关键是我跟踪的时候,没有得到cookie啊,但是我用httpwatch查看,发现那个图片是一个页面,在那个页面有一个cookie 用httpRequest访问http://www.easdo.com:8000/jtwf/image.jsp得到cookie和图片 莫名妙的問題 ASP.NET网站本机发布好本地IP浏览没问题,为什么在IE浏览报错 mvc 将View页面中的值传到Controller中 httpmodule 获取上传文件大小后,如何中止上传进程? 图片处理 第三次问:DataGrid中怎样添加title标签,并且能够支持HMTL代码? 为什么我在机器上每次运行aspx文件都出来这个?急!!!!!! 遇到难题:如何得到datalist中的控件(比如textbox,input)的text或者value值? 很的问题菜 大家谈谈北京、上海哪个更适合.NET程序员发展些? ~~~messagebox 关于ModalPopupExtender控件
carNum = HttpUtility.UrlEncode(carNum);
type = HttpUtility.UrlEncode(type);
code = HttpUtility.UrlEncode(code);
btnText = HttpUtility.UrlEncode(btnText);
string formatString = "num={0}&carNum={1}&carType={2}&rand={3}&submit={4}";
string postString = string.Format(formatString, num, carNum, type, code, btnText);
byte[] postData = System.Text.Encoding.ASCII.GetBytes(postString); _httpRequest = WebRequest.Create(_url) as HttpWebRequest;
_httpRequest.Method = "POST";
_httpRequest.ContentType = "application/x-www-form-urlencoded";
_httpRequest.ContentLength = postData.Length; System.IO.Stream outputStream = _httpRequest.GetRequestStream();
outputStream.Write(postData, 0, postData.Length);
outputStream.Close(); HttpWebResponse rsObj = _httpRequest.GetResponse() as HttpWebResponse;
return rsObj;我把这个rsObj返回回来,但是得到的HTML源代码结果不正确。说明:_url是post的地址,
第2步,请求验证码(注意需要带上第一次请求得到的cookie) 把验证码保存下来 人为识别输入
第3步 post数据 注意这一步需要用第一步的cookie和第2步的验证码
这样才可以完成一次请求
验证码识别劝你还是放弃吧 验证码识别比httpwebrequest要复杂多了。