遇到下面问题解决方法:
使用独立的本地执行上下文来实现对每个用户(或每个线程)状态的管理。
定义在本地内容中的cookie规范注册表和cookie存储将会优先于设置在HTTP客户端级别中默认的那些。
private static void SetCookies(String CookieUrl, CookieStore cookieStore) throws ClientProtocolException, IOException{
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
HttpGet httpget = new HttpGet(CookieUrl);
try {
HttpResponse response = httpclient.execute(httpget, localContext);
response.getEntity();
}catch(ProtocolException e){
System.out.println("ProtocolException:"+e);
}catch (Exception e) {
httpget.abort();
}
//两个版式cookie机制不同
//List<Cookie> cookies = cookieStore.getCookies();
List<Cookie> cookies = ((AbstractHttpClient) httpclient).getCookieStore().getCookies();
if (cookies.isEmpty()) {
//System.out.println("None cookie: "+CookieUrl);
} else {
for (int j = 0; j < cookies.size(); j++) {
cookieStore.addCookie(cookies.get(j));
}
}
}