我尝试将Java客户端开发到我的网站,但无法在httpclient4中存储cookie,服务器在get请求中发送头文件:
Set-Cookie: PHPSESSID=ea384f86b9b89a749f1684d9d3980820; path=/
但是在我提出请求后的代码中:
CookieManager m = (CookieManager) CookieHandler.getDefault();
System.out.println("Count : " + m.getCookieStore().getCookies().size());
我总是获得Count:0
Httpclient创建:
CookieManager cookiem = new CookieManager();
cookiem.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookiem);
...
httpClient = new DefaultHttpClient(params);
httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, org.apache.http.client.params.CookiePolicy.BEST_MATCH);
但是我得到了同样的结果,出了什么问题?
答案 0 :(得分:0)
CookieManager
是JRE内部HTTP客户端使用的Java 6特定类。
Apache HttpClient以不同方式管理HTTP状态,不能(也可能不应该)使用Java 6特定类。
有关使用Apache HttpClient进行HTTP状态管理的详细信息,请参阅:
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html