通過抓包發現通路成功的時候請求頭的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了,同時把該連接配接寫檔案。