List of usage examples for org.apache.http.client.cache HttpCacheContext adapt
public static HttpCacheContext adapt(final HttpContext context)
From source file:org.apache.http.impl.client.cache.CachingHttpAsyncClient.java
@Override public Future<HttpResponse> execute(final HttpHost target, final HttpRequest originalRequest, final HttpContext context, final FutureCallback<HttpResponse> futureCallback) { final BasicFuture<HttpResponse> future = new BasicFuture<HttpResponse>(futureCallback); final HttpRequestWrapper request = HttpRequestWrapper.wrap(originalRequest); final HttpCacheContext clientContext = HttpCacheContext.adapt(context); // default response context setResponseStatus(clientContext, CacheResponseStatus.CACHE_MISS); final String via = generateViaHeader(request); if (clientRequestsOurOptions(request)) { setResponseStatus(clientContext, CacheResponseStatus.CACHE_MODULE_RESPONSE); future.completed(new OptionsHttp11Response()); return future; }//from ww w .jav a 2s.c o m final HttpResponse fatalErrorResponse = getFatallyNoncompliantResponse(request, clientContext); if (fatalErrorResponse != null) { future.completed(fatalErrorResponse); return future; } try { this.requestCompliance.makeRequestCompliant(request); } catch (final ClientProtocolException e) { future.failed(e); return future; } request.addHeader(HeaderConstants.VIA, via); flushEntriesInvalidatedByRequest(target, request); if (!this.cacheableRequestPolicy.isServableFromCache(request)) { log.debug("Request is not servable from cache"); callBackend(future, target, request, clientContext); return future; } final HttpCacheEntry entry = satisfyFromCache(target, request); if (entry == null) { log.debug("Cache miss"); handleCacheMiss(future, target, request, clientContext); } else { try { handleCacheHit(future, target, request, clientContext, entry); } catch (final IOException e) { future.failed(e); } } return future; }