Skip to content

httpclient set cookie

ljsjava edited this page Mar 29, 2018 · 1 revision

public static String doHttp(String uri,String method,HttpEntity paras) { CloseableHttpClient httpClient = HttpClients.createDefault(); String result = null; try { HttpUriRequest request = RequestBuilder.create(method).setUri(uri).setEntity(paras).build();

		//方法1
		Lookup<CookieSpecProvider> lookup =     (Lookup)RegistryBuilder.create().register(CookieSpecs.DEFAULT, new DefaultCookieSpecProvider()).build();
		BasicCookieStore store = new BasicCookieStore();
		BasicClientCookie cookie = new BasicClientCookie("userkey", "39c8c1d4-3a5b-48d9-9230-c5312464d18e");
		cookie.setDomain("yyxt.ixianlai.cn");
		store.addCookie(cookie);
		HttpClientContext context = HttpClientContext.create();
		context.setCookieStore(store);
		context.setCookieSpecRegistry(lookup);
         
		//方法2
		//request.setHeader("Cookie", "userkey=39c8c1d4-3a5b-48d9-9230-c5312464d18e");
		
	    CloseableHttpResponse response = httpClient.execute(request,context);
	    Header[] headers = request.getAllHeaders();
	    for(Header header:headers) {
	    	System.out.println(header.getName()+":"+header.getValue());
	    }
	    if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
	    	HttpEntity entity = response.getEntity();
	    	result = EntityUtils.toString(entity);
	    	EntityUtils.consume(entity);
	    }else {
	    	System.out.println("ReasonPhrase:"+response.getStatusLine().getReasonPhrase()+",StatusCode:"+response.getStatusLine().getStatusCode());
	    }
	    response.close();
	} catch (Exception e) {
		e.printStackTrace();
	}finally {
		try {
			httpClient.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	return result;
}

Clone this wiki locally