@Override protected boolean handleAsIdempotent(final HttpRequest request) { final String method = request.getRequestLine().getMethod().toUpperCase(Locale.ROOT); final Boolean b = this.idempotentMethods.get(method); return b != null && b.booleanValue(); }
private boolean isRelativeRequest(final HttpRequest req) { final String requestUri = req.getRequestLine().getUri(); return ("*".equals(requestUri) || requestUri.startsWith("/")); }
private boolean requestMustNotHaveEntity(final HttpRequest request) { return HeaderConstants.TRACE_METHOD.equals(request.getRequestLine().getMethod()) && request instanceof HttpEntityEnclosingRequest; }
private void verifyOPTIONSRequestWithBodyHasContentType(final HttpRequest request) { if (!HeaderConstants.OPTIONS_METHOD.equals(request.getRequestLine().getMethod())) { return; } if (!(request instanceof HttpEntityEnclosingRequest)) { return; } addContentTypeHeaderIfMissing((HttpEntityEnclosingRequest) request); }
@Override public void flushInvalidatedCacheEntriesFor(final HttpHost host, final HttpRequest request, final HttpResponse response) { if (!safeRequestMethods.contains(request.getRequestLine().getMethod())) { cacheInvalidator.flushInvalidatedCacheEntries(host, request, response); } }
@Override protected void writeHeadLine(final HttpRequest message) throws IOException { lineFormatter.formatRequestLine(this.lineBuf, message.getRequestLine()); this.sessionBuffer.writeLine(this.lineBuf); }
@Override protected void writeHeadLine(final HttpRequest message) throws IOException { lineFormatter.formatRequestLine(this.lineBuf, message.getRequestLine()); this.sessionBuffer.writeLine(this.lineBuf); }
@Override public HttpCacheEntry update(final HttpCacheEntry existing) throws IOException { return doGetUpdatedParentEntry(req.getRequestLine().getUri(), existing, entry, variantKey, variantCacheKey); } };
@Override public RequestLine getRequestLine() { String requestUri = null; if (this.uri != null) { requestUri = this.uri.toASCIIString(); } else { requestUri = this.original.getRequestLine().getUri(); } if (requestUri == null || requestUri.isEmpty()) { requestUri = "/"; } return new BasicRequestLine(this.method, requestUri, getProtocolVersion()); }
boolean clientRequestsOurOptions(final HttpRequest request) { final RequestLine line = request.getRequestLine(); if (!HeaderConstants.OPTIONS_METHOD.equals(line.getMethod())) { return false; } if (!"*".equals(line.getUri())) { return false; } if (!"0".equals(request.getFirstHeader(HeaderConstants.MAX_FORWARDS).getValue())) { return false; } return true; }
@Override public void flushCacheEntriesFor(final HttpHost host, final HttpRequest request) throws IOException { if (!safeRequestMethods.contains(request.getRequestLine().getMethod())) { final String uri = uriExtractor.getURI(host, request); storage.removeEntry(uri); } }
private boolean canResponseHaveBody(final HttpRequest request, final HttpResponse response) { if (request != null && "HEAD".equalsIgnoreCase(request.getRequestLine().getMethod())) { return false; } final int status = response.getStatusLine().getStatusCode(); return status >= HttpStatus.SC_OK && status != HttpStatus.SC_NO_CONTENT && status != HttpStatus.SC_NOT_MODIFIED && status != HttpStatus.SC_RESET_CONTENT; }
private void decrementOPTIONSMaxForwardsIfGreaterThen0(final HttpRequest request) { if (!HeaderConstants.OPTIONS_METHOD.equals(request.getRequestLine().getMethod())) { return; } final Header maxForwards = request.getFirstHeader(HeaderConstants.MAX_FORWARDS); if (maxForwards == null) { return; } request.removeHeaders(HeaderConstants.MAX_FORWARDS); final int currentMaxForwards = Integer.parseInt(maxForwards.getValue()); request.setHeader(HeaderConstants.MAX_FORWARDS, Integer.toString(currentMaxForwards - 1)); }
@Override public HttpCacheEntry update(final HttpCacheEntry existing) throws IOException { return doGetUpdatedParentEntry( req.getRequestLine().getUri(), existing, entry, uriExtractor.getVariantKey(req, entry), variantURI); }
public HttpUriRequest getRedirect( final HttpRequest request, final HttpResponse response, final HttpContext context) throws ProtocolException { final URI uri = this.handler.getLocationURI(response, context); final String method = request.getRequestLine().getMethod(); if (method.equalsIgnoreCase(HttpHead.METHOD_NAME)) { return new HttpHead(uri); } else { return new HttpGet(uri); } }
private HttpRequestWrapper(final HttpRequest request, final HttpHost target) { super(); this.original = Args.notNull(request, "HTTP request"); this.target = target; this.version = this.original.getRequestLine().getProtocolVersion(); this.method = this.original.getRequestLine().getMethod(); if (request instanceof HttpUriRequest) { this.uri = ((HttpUriRequest) request).getURI(); } else { this.uri = null; } setHeaders(request.getAllHeaders()); }
@Override public HttpCacheEntry updateCacheEntry(final HttpHost target, final HttpRequest request, final HttpCacheEntry stale, final HttpResponse originResponse, final Date requestSent, final Date responseReceived) throws IOException { final HttpCacheEntry updatedEntry = cacheEntryUpdater.updateCacheEntry( request.getRequestLine().getUri(), stale, requestSent, responseReceived, originResponse); storeInCache(target, request, updatedEntry); return updatedEntry; }
@Override protected void onRequestSubmitted(final HttpRequest request) { if (request != null && this.headerlog.isDebugEnabled()) { this.headerlog.debug(getId() + " >> " + request.getRequestLine().toString()); final Header[] headers = request.getAllHeaders(); for (final Header header : headers) { this.headerlog.debug(getId() + " >> " + header.toString()); } } }
private void ensure200ForOPTIONSRequestWithNoBodyHasContentLengthZero(final HttpRequest request, final HttpResponse response) { if (!request.getRequestLine().getMethod().equalsIgnoreCase(HeaderConstants.OPTIONS_METHOD)) { return; } if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { return; } if (response.getFirstHeader(HTTP.CONTENT_LEN) == null) { response.addHeader(HTTP.CONTENT_LEN, "0"); } }
private boolean backendResponseMustNotHaveBody(final HttpRequest request, final HttpResponse backendResponse) { return HeaderConstants.HEAD_METHOD.equals(request.getRequestLine().getMethod()) || backendResponse.getStatusLine().getStatusCode() == HttpStatus.SC_NO_CONTENT || backendResponse.getStatusLine().getStatusCode() == HttpStatus.SC_RESET_CONTENT || backendResponse.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_MODIFIED; }