轉載:http://blog.csdn.net/zhangbinu/article/details/72777620
一、舊版本的HttpClient獲取Cookies
p.s. 該方式官方已不推薦使用
使用DefaultHttpClient類實例化httpClient對象:
public static String dooPost_deprecated(String url, Map<String, String> map, String charset) {
DefaultHttpClient httpClient = null; HttpPost httpPost = null; String result = null; try { httpClient = new DefaultHttpClient(); httpPost = new HttpPost(url); // 設置參數 List<NameValuePair> list = new ArrayList<NameValuePair>(); Iterator<Entry<String, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, String> elem = (Entry<String, String>) iterator.next(); list.add(new BasicNameValuePair(elem.getKey(), elem.getValue())); } if (list.size() > 0) { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset); httpPost.setEntity(entity); } HttpResponse response = httpClient.execute(httpPost); System.out.println(response.getStatusLine().getStatusCode()); String JSESSIONID = null; String cookie_user = null; //獲得Cookies CookieStore cookieStore = httpClient.getCookieStore(); List<Cookie> cookies = cookieStore.getCookies(); for (int i = 0; i < cookies.size(); i++) { //遍歷Cookies System.out.println(cookies.get(i)); System.out.println("cookiename=="+cookies.get(i).getName()); System.out.println("cookieValue=="+cookies.get(i).getValue()); System.out.println("Domain=="+cookies.get(i).getDomain()); System.out.println("Path=="+cookies.get(i).getPath()); System.out.println("Version=="+cookies.get(i).getVersion()); if (cookies.get(i).getName().equals("JSESSIONID")) { JSESSIONID = cookies.get(i).getValue(); } if (cookies.get(i).getName().equals("cookie_user")) { cookie_user = cookies.get(i).getValue(); } } if (cookie_user != null) { result = JSESSIONID; } } catch (Exception ex) { ex.printStackTrace(); } return result; }
二、新版本的HttpClient獲取Cookies
使用CloseableHttpClient類實例化httpClient對象:
public static String doPost(Map<String, String> map, String charset) { CloseableHttpClient httpClient = null; HttpPost httpPost = null; String result = null; try { CookieStore cookieStore = new BasicCookieStore(); httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build(); httpPost = new HttpPost("http://localhost:8080/testtoolmanagement/LoginServlet"); List<NameValuePair> list = new ArrayList<NameValuePair>(); Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, String> elem = (Entry<String, String>) iterator.next(); list.add(new BasicNameValuePair(elem.getKey(), elem.getValue())); } if (list.size() > 0) { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset); httpPost.setEntity(entity); } httpClient.execute(httpPost); String JSESSIONID = null; String cookie_user = null; List<Cookie> cookies = cookieStore.getCookies(); for (int i = 0; i < cookies.size(); i++) { if (cookies.get(i).getName().equals("JSESSIONID")) { JSESSIONID = cookies.get(i).getValue(); } if (cookies.get(i).getName().equals("cookie_user")) { cookie_user = cookies.get(i).getValue(); } } if (cookie_user != null) { result = JSESSIONID; } } catch (Exception ex) { ex.printStackTrace(); } return result; }
HttpClient及其jar包下載地址:官網鏈接