***先上代码, 大致功能是模拟登录 然后把cookie存到文件中。
***鄙人设置每登录一个帐号 休息5秒 大概10个左右 就开始要我输入验证码了。
***我将验证码存到D盘,然后查看图片 手动输入验证码 。
***但是一直会出现
【
1/ij2l5G6GHA555nGImjODZB1tXgo_KFAl/\x00\x00\x00\x00\x33\x78\x0e\x75
需要输入验证码
http://captcha.qq.com/getimage?uin=863506037&aid=46000101&0.11248807175794862
请输入验证码:
numk
测试结果:ptuiCB('7','0','','0','很遗憾,网络连接出现异常,请您稍后再试。(2237663584)', '0');
】
一直是异常,感觉上这个像是访问过快被封了,但是又有人说是cookie 或者参数传的不对,求高手帮忙看看哪里有问题??(注:不出验证码提示的时候,我程序是ok的。)
/********************* 获取验证码 ***********************/
String codeUrl="http://check.ptlogin2.qq.com/check?uin="+ uin + "&appid=46000101&ptlang=2052&r=" + Math.random();
HttpGet get = new HttpGet(codeUrl);
get.setHeader("Host", "check.ptlogin2.qq.com");
get.setHeader("Referer", "http://t.qq.com/?from=11");
get.setHeader("User-Agent","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
HttpResponse response = client.execute(get);
// HttpResponse response = client.execute(proxy,get);
String entity = EntityUtils.toString(response.getEntity());
String[] checkNum = entity.substring(entity.indexOf("(") + 1,entity.lastIndexOf(")")).replace("'", "").split(",");
String checkCode = checkNum[1];
System.out.println(checkNum[0]+"/"+checkNum[1]+"/"+checkNum[2]);
if(checkNum[0].equals("1")){
System.out.println("需要输入验证码");
String str12 = "http://captcha.qq.com/getimage?uin="+uin+"&aid=46000101&0.11248807175794862";
System.out.println(str12);
URL url = new URL(str12);
URLConnection uc = url.openConnection();
InputStream is = uc.getInputStream();
File file = new File("D:/QQwocaonidaye.jpg");
FileOutputStream out = new FileOutputStream(file);
int j =0;
while ((j=is.read())!=-1) {
out.write(j);
}
is.close();
System.out.println("请输入验证码:");
Scanner input = new Scanner(System.in);
checkCode = input.next();
}
String pass = "";
/******************** *加密密码 ***************************/
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.eval("var hexcase = 1;var b64pad = \"\";var chrsz = 8;var mode = 32;function md5(A) {return hex_md5(A)}function hex_md5(A) {return binl2hex(core_md5(str2binl(A), A.length * chrsz))}"
+ "function str_md5(A) {return binl2str(core_md5(str2binl(A), A.length * chrsz))}function hex_hmac_md5(A, B) {return binl2hex(core_hmac_md5(A, B))}function b64_hmac_md5(A, B) {return binl2b64(core_hmac_md5(A, B))}"
+ "function str_hmac_md5(A, B) {return binl2str(core_hmac_md5(A, B))}"
+ "function core_md5(K, F) {K[F >> 5] |= 128 << ((F) % 32);K[(((F + 64) >>> 9) << 4) + 14] = F;var J = 1732584193;var I = -271733879;var H = -1732584194;var G = 271733878;"
+ "for (var C = 0; C < K.length; C += 16) {var E = J;var D = I;var B = H;var A = G;J = md5_ff(J, I, H, G, K[C + 0], 7, -680876936);G = md5_ff(G, J, I, H, K[C + 1], 12, -389564586);"
+ "H = md5_ff(H, G, J, I, K[C + 2], 17, 606105819);I = md5_ff(I, H, G, J, K[C + 3], 22, -1044525330);J = md5_ff(J, I, H, G, K[C + 4], 7, -176418897);G = md5_ff(G, J, I, H, K[C + 5], 12, 1200080426);H = md5_ff(H, G, J, I, K[C + 6], 17, -1473231341);"