不知道这是最好的方式,但什么帮助我实现这一目标是CloseableHttpClient类沿BasicCookieStore保留cookie进行后续请求一旦登录,实施如下:
BasicCookieStore cookieStore = new BasicCookieStore();
CloseableHttpClient httpclient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
HttpUriRequest login = RequestBuilder.post()
.setUri(new URI(url_login))
.addParameter("login", "loginuname")
.addParameter("password", "pwd")
.addParameter("submit", "sub_mit");
CloseableHttpResponse response = httpclient.execute(login);
List<Cookie> cookies = cookieStore.getCookies();
response.close();
HttpGet httpget2 = new HttpGet(url_to_get_after_login);
CloseableHttpResponse response2 = httpclient.execute(httpget2);
response2.close();
传递一个[CookieManager](http://docs.oracle.com/jav ase/8/docs/api/java/net/CookieManager.html)复制到[CookieHandler.setDefault](http://docs.oracle.com/javase/8/docs/api/java/net/CookieHandler.html#setDefault -java.net.CookieHandler-)。 – VGR