@Override public void setHeaders(final Header[] headers) { original.setHeaders(headers); }
CloseableHttpResponse getReconstructedResponse() throws IOException { ensureConsumed(); final HttpResponse reconstructed = new BasicHttpResponse(response.getStatusLine()); reconstructed.setHeaders(response.getAllHeaders()); final CombinedEntity combinedEntity = new CombinedEntity(resource, instream); final HttpEntity entity = response.getEntity(); if (entity != null) { combinedEntity.setContentType(entity.getContentType()); combinedEntity.setContentEncoding(entity.getContentEncoding()); combinedEntity.setChunked(entity.isChunked()); } reconstructed.setEntity(combinedEntity); return (CloseableHttpResponse) Proxy.newProxyInstance( ResponseProxyHandler.class.getClassLoader(), new Class<?>[] { CloseableHttpResponse.class }, new ResponseProxyHandler(reconstructed) { @Override public void close() throws IOException { response.close(); } }); }
/** * If I was able to use a {@link CacheEntity} to response to the {@link cz.msebera.android.httpclient.HttpRequest} then * generate an {@link HttpResponse} based on the cache entry. * @param request {@link HttpRequestWrapper} to generate the response for * @param entry {@link CacheEntity} to transform into an {@link HttpResponse} * @return {@link HttpResponse} that was constructed */ CloseableHttpResponse generateResponse(final HttpRequestWrapper request, final HttpCacheEntry entry) { final Date now = new Date(); final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, entry .getStatusCode(), entry.getReasonPhrase()); response.setHeaders(entry.getAllHeaders()); if (responseShouldContainEntity(request, entry)) { final HttpEntity entity = new CacheEntity(entry); addMissingContentLengthHeader(response, entity); response.setEntity(entity); } final long age = this.validityStrategy.getCurrentAgeSecs(entry, now); if (age > 0) { if (age >= Integer.MAX_VALUE) { response.setHeader(HeaderConstants.AGE, "2147483648"); } else { response.setHeader(HeaderConstants.AGE, "" + ((int) age)); } } return Proxies.enhanceResponse(response); }