我现在用httpwebrequest post一个表单到一个URL上,但是这个页面上是有需要验证码的。各位遇到这种情况,这个验证码是怎么得到值的。谢谢,我在测试的时候把那个验证码先给它写死,就是先从那个网站上抄下来,填入。但是查询到的数据是空的。有点类似自动登录这样的,但是有验证码。

解决方案 »

  1.   

                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的地址,
      

  2.   

    好像有些程序能做到自动识别数字验证码,于是就有了很多变态的验证码:加干扰信息。楼主说的这个问题不大好解决,如果那个站点是自己的话,可以先把验证码的值传过来,作为参数的值再POST过去
      

  3.   

    我得到验证码的URL跟post上去得到结果的URL如果不一样的话可不可以。
      

  4.   

    第一步 httpwebrequest 请求主页面 获取cookie
    第2步,请求验证码(注意需要带上第一次请求得到的cookie) 把验证码保存下来 人为识别输入
    第3步   post数据 注意这一步需要用第一步的cookie和第2步的验证码
    这样才可以完成一次请求
    验证码识别劝你还是放弃吧 验证码识别比httpwebrequest要复杂多了。
      

  5.   

    关键是我跟踪的时候,没有得到cookie啊,但是我用httpwatch查看,发现那个图片是一个页面,在那个页面有一个cookie
      

  6.   

    用httpRequest访问http://www.easdo.com:8000/jtwf/image.jsp得到cookie和图片