一,批量识别,批量报错
1.提交get请求,使用Json方法获取gid(验证码的身份证明)
注意:请求url中有count=i,自增型变量(使用for循环的i进行匹配)
string httpResult = GetPic.HttpGet("https://store.steampowered.com/join/refreshcaptcha/?count=", i.ToString());
2.用得到的gid,拼接图片下载地址
string PicUrl = "https://store.steampowered.com/public/captcha.php?gid=" + m_result;
3.使用get请求,获取图片Stream流,使用GetBytes方法将其转换为二进制格式,存入变量
Stream httpResult1 = GetPic.HttpGetPic(PicUrl, "");
byte[] bs = GetPic.GetBytes(httpResult1);
4.上传至打码平台识别(二进制上传方式),解析并处理返回的字符串,提取答案与答题ID
string httpResult2 = RKHTTp.Post("http://api.ruokuai.com/create.json", param, bs);
5.使用答案提交表单
string httpResult3 = GetPic.HttpGet("https://store.steampowered.com/join/verifycaptcha/?captchagid=" + m_result + "&captcha_text=" + m_AnResult + "&email=1318733145%40qq.com&count=" + i.ToString(), "");
注意:需要提交的其他信息位email(使用固定地址)与count次数(使用for循环的i)。
6.解析返回的Json字符串,提取匹配结果
string AnResultCk = jo2["bCaptchaMatches"].ToString();//验证码答案是否正确
string AnResultCk1 = jo2["bEmailAvail"].ToString();//邮箱是否有效
7.根据结果判断,如错误则提交报错,正确则进行下轮循环
if (AnResultCk == "false")
{
//提交报错
var param1 = new Dictionary{
{"username","forsek"},
{"password","sabar777"},
{"id",m_AnId}
};
string httpResult4 = RKHTTp.Post("http://api.ruokuai.com/reporterror.xml", param1);