httpClient保持session
importorg。apache。commons。httpclient。Cookie;importorg。apache。commons。httpclient。HttpClient;importorg。apache。commons。httpclient。cookie。CookiePolicy;importorg。apache。commons。httpclient。NameValuePair;importorg。apache。commons。httpclient。methods。GetMethod;importorg。apache。commons。httpclient。methods。PostMethod;publicclassTestLogin{publicstaticvoidmain(String〔〕args){登陆UrlStringloginUrlhttp:139。196。40。80:3000login;需登陆后访问的UrlStringdataUrlhttp:139。196。40。80:3000index;HttpClienthttpClientnewHttpClient();模拟登陆,按实际服务器端要求选用Post或Get请求方式PostMethodpostMethodnewPostMethod(loginUrl);设置登陆时要求的信息,用户名和密码NameValuePair〔〕data{newNameValuePair(username,lixiuming),newNameValuePair(password,lixiuming)};postMethod。setRequestBody(data);try{设置HttpClient接收Cookie,用与浏览器一样的策略httpClient。getParams()。setCookiePolicy(CookiePolicy。BROWSERCOMPATIBILITY);httpClient。executeMethod(postMethod);获得登陆后的CookieCookie〔〕cookieshttpClient。getState()。getCookies();StringBuffertmpcookiesnewStringBuffer();for(Cookiec:cookies){tmpcookies。append(c。toString(););}进行登陆后的操作1581,1602,1603,1610,1609,1608,1607,1606,1605,1620,1619,1617,1616,1622,1626,1642,1648,1647,1657GetMethodgetMethodnewGetMethod(dataUrl);每次访问需授权的网址时需带上前面的cookie作为通行证getMethod。setRequestHeader(cookie,tmpcookies。toString());你还可以通过PostMethodGetMethod设置更多的请求后数据例如,referer从哪里来的,UA像搜索引擎都会表名自己是谁,无良搜索引擎除外postMethod。setRequestHeader(Referer,http:139。196。40。80:3000index);postMethod。setRequestHeader(UserAgent,wwwSpot);httpClient。executeMethod(getMethod);打印出返回数据,检验一下是否成功StringtextgetMethod。getResponseBodyAsString();System。out。println(text);}catch(Exceptione){e。printStackTrace();}}}版权声明:本文为CSDN博主freellf的原创文章,遵循CC4。0BYSA版权协议,转载请附上原文出处链接及本声明。原文链接:https:blog。csdn。netfreellfarticledetails114041673