List of usage examples for org.apache.http.protocol HttpCoreContext HTTP_RESPONSE
String HTTP_RESPONSE
To view the source code for org.apache.http.protocol HttpCoreContext HTTP_RESPONSE.
Click Source Link
From source file:org.apache.http.impl.client.cache.CachingHttpAsyncClient.java
private void handleCacheHit(final BasicFuture<HttpResponse> future, final HttpHost target, final HttpRequestWrapper request, final HttpCacheContext clientContext, final HttpCacheEntry entry) throws IOException { recordCacheHit(target, request);//w w w . ja v a 2 s . c om final HttpResponse out; final Date now = getCurrentDate(); if (this.suitabilityChecker.canCachedResponseBeUsed(target, request, entry, now)) { log.debug("Cache hit"); out = generateCachedResponse(request, clientContext, entry, now); } else if (!mayCallBackend(request)) { log.debug("Cache entry not suitable but only-if-cached requested"); out = generateGatewayTimeout(clientContext); } else if (validityPolicy.isRevalidatable(entry) && !(entry.getStatusCode() == HttpStatus.SC_NOT_MODIFIED && !suitabilityChecker.isConditional(request))) { log.debug("Revalidating cache entry"); revalidateCacheEntry(future, target, request, clientContext, entry, now); return; } else { log.debug("Cache entry not usable; calling backend"); callBackend(future, target, request, clientContext); return; } clientContext.setAttribute(HttpClientContext.HTTP_ROUTE, new HttpRoute(target)); clientContext.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, target); clientContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request); clientContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, out); clientContext.setAttribute(HttpCoreContext.HTTP_REQ_SENT, Boolean.TRUE); future.completed(out); }
From source file:org.apache.http.impl.execchain.ProtocolExec.java
public CloseableHttpResponse execute(final HttpRoute route, final HttpRequestWrapper request, final HttpClientContext context, final HttpExecutionAware execAware) throws IOException, HttpException { Args.notNull(route, "HTTP route"); Args.notNull(request, "HTTP request"); Args.notNull(context, "HTTP context"); final HttpRequest original = request.getOriginal(); URI uri = null;// ww w . j av a 2 s .com if (original instanceof HttpUriRequest) { uri = ((HttpUriRequest) original).getURI(); } else { final String uriString = original.getRequestLine().getUri(); try { uri = URI.create(uriString); } catch (final IllegalArgumentException ex) { if (this.log.isDebugEnabled()) { this.log.debug("Unable to parse '" + uriString + "' as a valid URI; " + "request URI and Host header may be inconsistent", ex); } } } request.setURI(uri); // Re-write request URI if needed rewriteRequestURI(request, route); final HttpParams params = request.getParams(); HttpHost virtualHost = (HttpHost) params.getParameter(ClientPNames.VIRTUAL_HOST); // HTTPCLIENT-1092 - add the port if necessary if (virtualHost != null && virtualHost.getPort() == -1) { final int port = route.getTargetHost().getPort(); if (port != -1) { virtualHost = new HttpHost(virtualHost.getHostName(), port, virtualHost.getSchemeName()); } if (this.log.isDebugEnabled()) { this.log.debug("Using virtual host" + virtualHost); } } HttpHost target = null; if (virtualHost != null) { target = virtualHost; } else { if (uri != null && uri.isAbsolute() && uri.getHost() != null) { target = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); } } if (target == null) { target = route.getTargetHost(); } // Get user info from the URI if (uri != null) { final String userinfo = uri.getUserInfo(); if (userinfo != null) { CredentialsProvider credsProvider = context.getCredentialsProvider(); if (credsProvider == null) { credsProvider = new BasicCredentialsProvider(); context.setCredentialsProvider(credsProvider); } credsProvider.setCredentials(new AuthScope(target), new UsernamePasswordCredentials(userinfo)); } } // Run request protocol interceptors context.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, target); context.setAttribute(HttpClientContext.HTTP_ROUTE, route); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request); this.httpProcessor.process(request, context); final CloseableHttpResponse response = this.requestExecutor.execute(route, request, context, execAware); try { // Run response protocol interceptors context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response); this.httpProcessor.process(response, context); return response; } catch (final RuntimeException ex) { response.close(); throw ex; } catch (final IOException ex) { response.close(); throw ex; } catch (final HttpException ex) { response.close(); throw ex; } }
From source file:org.apache.http.impl.nio.client.MainClientExec.java
@Override public void responseReceived(final HttpResponse response, final InternalState state, final AbstractClientExchangeHandler<?> handler) throws IOException, HttpException { if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + state.getId() + "] Response received " + response.getStatusLine()); }//from w ww .j av a2 s . c om final HttpClientContext context = state.getLocalContext(); context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response); this.httpProcessor.process(response, context); handler.setCurrentResponse(response); if (!handler.isRouteEstablished()) { final int status = response.getStatusLine().getStatusCode(); if (status < 200) { throw new HttpException("Unexpected response to CONNECT request: " + response.getStatusLine()); } if (status == HttpStatus.SC_OK) { handler.onRouteTunnelToTarget(); handler.setCurrentRequest(null); } else { if (!handleConnectResponse(state, handler)) { state.setFinalResponse(response); } } } else { if (!handleResponse(state, handler)) { state.setFinalResponse(response); } } if (state.getFinalResponse() != null) { final HttpAsyncResponseConsumer<?> responseConsumer = state.getResponseConsumer(); responseConsumer.responseReceived(response); } }
From source file:org.apache.http.impl.nio.client.MinimalClientExchangeHandlerImpl.java
@Override public void responseReceived(final HttpResponse response) throws IOException, HttpException { if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + getId() + "] Response received " + response.getStatusLine()); }//from ww w.j av a2 s . c om this.localContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, response); this.httpProcessor.process(response, this.localContext); setCurrentResponse(response); this.responseConsumer.responseReceived(response); }
From source file:org.apache.http.impl.nio.client.PipeliningClientExchangeHandlerImpl.java
@Override public void responseReceived(final HttpResponse response) throws IOException, HttpException { if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + getId() + "] Response received " + response.getStatusLine()); }// w w w.java 2 s .c o m Asserts.check(this.responseConsumerRef.get() == null, "Inconsistent state: response consumer is not null"); final HttpAsyncResponseConsumer<T> responseConsumer = this.responseConsumerQueue.poll(); Asserts.check(responseConsumer != null, "Inconsistent state: response consumer queue is empty"); this.responseConsumerRef.set(responseConsumer); final HttpRequest request = this.requestQueue.poll(); Asserts.check(request != null, "Inconsistent state: request queue is empty"); this.localContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request); this.localContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, response); this.httpProcessor.process(response, this.localContext); responseConsumer.responseReceived(response); setCurrentResponse(response); }