httpclient验证码登录后提示登录超时
最近研究爬虫,使用httpclient手动输入验证码后匿名登录网站,第一个页面登录正常,在点击下一个链接时提示登录超时,cookie也设置了,实在是没有办法,跪求指点,部分代码如下:
//文件开头已经设置过httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
//验证码验证成功,保存COOKIE
if(g1.getStatusCode() == 200 && sg31.indexOf("{\"msg\": \"success\", \"status\": 1}")!=-1){
String cookiesimage3 = "" ;
Cookie[] cookiesChildimage3 = httpClient.getState().getCookies();
for (Cookie c : cookiesChildimage3) {
cookiesimage3 += c.toString() + ";" ;
}
System.out.println("3:"+cookiesimage3);
//进入下一页面,到这一步登录是成功的
gmy = new GetMethod("http://xyq.cbg.163.com/static_file/558/buy_equip_list/equip_list1.html") ;
gmy.setRequestHeader("Accept", "text/html, application/xhtml+xml, */*") ;
gmy.setRequestHeader("Accept-Language", "zh-CN") ;
gmy.setRequestHeader("Connection", "Keep-Alive") ;
gmy.setRequestHeader("Host", "res.xyq.cbg.163.com") ;//Proxy-Connection: keep-alive
gmy.setRequestHeader("Referer", "http://xyq.cbg.163.com/") ;
gmy.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)") ;
//gmy.setRequestHeader("Cookie", cookiesimage3) ;
gmy.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=GBK") ;
httpClient.executeMethod(gmy) ;
String sgzf1 = gmy.getResponseBodyAsString() ;
sgzf1 = new String(sgzf1.getBytes("ISO-8859-1"),"GBK");
if(gmy.getStatusCode() == 200 ){
String cookiesimage4 = "" ;
Cookie[] cookiesChildimage4 = httpClient.getState().getCookies();
for (Cookie c : cookiesChildimage4) {
cookiesimage4 += c.toString() + ";" ;
}
//经过验证,cookiesimage4和cookiesimage4是一样的
int a = cookiesimage4.compareTo(cookiesimage3);
System.out.println("4:"+cookiesimage4+a+"");
//这里准备进入第二个页面,结果会提示登录超时
gmy2 = new GetMethod("http://xyq.cbg.163.com/cgi-bin/query.py?act=query&server_id=558&areaid=58&server_name=%C7%E0%BB%A8%B4%C9&page=1&query_order=&kindid=23&kind_depth=2") ;
gmy2.setRequestHeader("Accept", "text/html, application/xhtml+xml, */*") ;
gmy2.setRequestHeader("Accept-Language", "zh-CN") ;
gmy2.setRequestHeader("Connection", "Keep-Alive") ;
gmy2.setRequestHeader("Host", "res.xyq.cbg.163.com") ;//Proxy-Connection: keep-alive
gmy2.setRequestHeader("Referer", "http://xyq.cbg.163.com/") ;
gmy2.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)") ;
gmy2.setRequestHeader("Cookie",cookiesimage3) ;
httpClient.executeMethod(gmy2) ;
//结果会提示登录超时,跪求问题出在哪?
//文件开头已经设置过httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);