通过抓包发现访问成功的时候请求头的cookie值有两个,就是第一次请求时返回头里面的两个Set-Cookie, 以前代码是httpURLConnection.getHeaderField("Set-Cookie"),只能获取到最后一个Set-Cookie的值,现在改成
String cookieVal = null;
String key = null;
for (int i = 1; (key = httpURLConnection.getHeaderFieldKey(i)) != null; i++) {
if (key.equalsIgnoreCase("set-cookie")) {
cookieVal = httpURLConnection.getHeaderField(i);
cookieVal = cookieVal.substring(0,
cookieVal.indexOf(";"));
cookies = cookies + cookieVal + ";";
}
}
cookie = cookies;
每次访问都加cookie,就成功访问了,并且得到页面的内容;只不过,抓包信息里面是第四次才在请求头加上cookie,现在也不管那么多原因了,望知情的同学不吝告知。
还有一种没有cookie,程序处理就是无限多次302,现在还没解决,郁闷ing……这种连接还时好时坏,uc能正常访问,每次我都没跟完,就好了,现在只好预先处理多次302就continue了,同时把该连接写文件。