验证码 获取后 POST成功 但还是不能自动登陆
最近学习识验证码自动登陆网站。按CSDN朋友们的方法。都实现得差不多了。
一,按地址直接下载验证码图形 识别已成功。
二,POST 数据我测试也可以成功。
一些网站可以实现自动登陆了。
但发现一个网站POST 用户、密码、识别的验证码后。页面仍然返回验证码验证失败。
这个网站 验证码上点右键属性是这样的http://www.XXX.com/XXX/com.huawei.icd30.wskf.console.TextBufferedImage
嵌入网页时,它放在一个单元格里,是这样子的:
<td width= "20% ">
<span class= "aa ">
<img src= "/servlet/com.huawei.icd30.wskf.console.TextBufferedImage "> </span>
</td>
我用 VB.net http://www.XXX.com/XXX/com.huawei.icd30.wskf.console.TextBufferedImage
这个地址后识别了验证码。最后POST 还是返回页面。说验证码错误。
我在机子上 自已写了一个 1.htm 构造一个form post都成功了。写在VB.net工具下。就不行了。
抓包看过了。 软件提交和 网页提交 的数据是一样的。
现在想 是不是直接获取那个验证码地址 这样子不行。唉。不解……
[解决办法]
不明白,帮你顶一下,还想问一下你的验证码图形是如何识别的?
[解决办法]
莫非楼主想做黑客?非法进入这个网站?
[解决办法]
保存cookies 确保获取验证码和post是同一次访问
[解决办法]
貌似那些个网站不是你的...
[解决办法]
给你一个例子:
string postData = "uUsername=avoid&uPassword=123456 ";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(postData);
request = (HttpWebRequest)WebRequest.Create(sUrl);
request.Method = "POST ";
request.ContentType = "application/x-www-form-urlencoded ";
request.ContentLength = data.Length;
Stream newStream = request.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
request.CookieContainer = cc;
response = (HttpWebResponse)request.GetResponse();
cc.Add(response.Cookies);
stream = response.GetResponseStream();
sHtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
///////////////////////////
private CookieContainer cc = new CookieContainer();