HTTP request executor
HttpRequestExecutor是基于阻塞型I/O模型的客户端HTTP协议handler,实现了HTTP协议对客户端报文处理的基本要求。HttpRequestExecutor依赖HttpProcessor实例来为将要发出的报文产生必需的报文头,以及对接受和发出的报文进行常用的修改。请求发出并受到应答之后,应用相关的处理可以在HttpRequestExecutor之外进行。
HttpClientConnection conn = <...>
HttpProcessor httpproc = HttpProcessorBuilder.create()
.add(new RequestContent())
.add(new RequestTargetHost())
.add(new RequestConnControl())
.add(new RequestUserAgent("MyClient/1.1"))
.add(new RequestExpectContinue(true))
.build();
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpRequest request = new BasicHttpRequest("GET", "/");
HttpCoreContext context = HttpCoreContext.create();
httpexecutor.preProcess(request, httpproc, context);
HttpResponse response = httpexecutor.execute(request, conn, context);
httpexecutor.postProcess(response, httpproc, context);
HttpEntity entity = response.getEntity();
EntityUtils.consume(entity);
HttpRequestExecutor的方法是线程安全的,只要HttpRequestExecutor使用的协议拦截器是线程安全的,就可以同时处理多个请求