本文共 3802 字,大约阅读时间需要 12 分钟。
HttpContext context = <...>HttpClientContext clientContext = HttpClientContext.adapt(context);HttpHost target = clientContext.getTargetHost();HttpRequest request = clientContext.getRequest();HttpResponse response = clientContext.getResponse();RequestConfig config = clientContext.getRequestConfig();代表一个逻辑相关的会话中的多个请求序列应该被同一个HttpContext实例执行,以确保请求之间会话上下文和状态信息的自动传输。下面的例子中:请求配置在最初被初始化,它将在执行上下文中一直保持。共享与同一个会话中所有连续的请求。
CloseableHttpClient httpclient = HttpClients.createDefault();RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(1000) .setConnectTimeout(1000) .build();HttpGet httpget1 = new HttpGet("http://localhost/1");httpget1.setConfig(requestConfig);CloseableHttpResponse response1 = httpclient.execute(httpget1, context);try { HttpEntity entity1 = response1.getEntity();} finally { response1.close();}HttpGet httpget2 = new HttpGet("http://localhost/2");CloseableHttpResponse response2 = httpclient.execute(httpget2, context);try { HttpEntity entity2 = response2.getEntity();} finally { response2.close();}
import java.util.List;import org.apache.http.client.CookieStore;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.protocol.HttpClientContext;import org.apache.http.cookie.Cookie;import org.apache.http.impl.client.BasicCookieStore;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;/** * This example demonstrates the use of a local HTTP context populated with * custom attributes. */public class ClientCustomContext { public final static void main(String[] args) throws Exception { CloseableHttpClient httpclient = HttpClients.createDefault(); try { // Create a local instance of cookie store CookieStore cookieStore = new BasicCookieStore(); // Create local HTTP context HttpClientContext localContext = HttpClientContext.create(); // Bind custom cookie store to the local context localContext.setCookieStore(cookieStore); HttpGet httpget = new HttpGet("http://localhost/"); System.out.println("Executing request " + httpget.getRequestLine()); // Pass local context as a parameter CloseableHttpResponse response = httpclient.execute(httpget, localContext); try { System.out.println("----------------------------------------"); System.out.println(response.getStatusLine()); Listcookies = cookieStore.getCookies(); for (int i = 0; i < cookies.size(); i++) { System.out.println("Local cookie: " + cookies.get(i)); } EntityUtils.consume(response.getEntity()); } finally { response.close(); } } finally { httpclient.close(); } }}
转载地址:http://ynhgi.baihongyu.com/