public void process( final HttpRequest req, final HttpContext context ) throws HttpException, IOException { // set the Accept-Encoding header: String encoding = getContentEncoding(); if ( !req.containsHeader( ACCEPT_ENC_HDR ) ) req.addHeader( ACCEPT_ENC_HDR, encoding ); else { StringBuilder values = new StringBuilder(); for ( Header h : req.getHeaders( ACCEPT_ENC_HDR ) ) values.append( h.getValue() ).append( "," ); String encList = (!values.toString().contains( encoding )) ? values .append( encoding ).toString() : values.toString().substring( 0, values.lastIndexOf( "," ) ); req.setHeader( ACCEPT_ENC_HDR, encList ); } //TODO compress request and add content-encoding header. } }
IOException { try { Header[] tmp = request.getHeaders("Host"); Address serverAddressAtClient = getServerAddressAtClient(tmp[0].getValue()); String uri = request.getRequestLine().getUri();
IOException { try { Header[] tmp = request.getHeaders("Host"); Address serverAddressAtClient = getServerAddressAtClient(tmp[0].getValue()); String uri = request.getRequestLine().getUri();
public void process( final HttpRequest req, final HttpContext context ) throws HttpException, IOException { // set the Accept-Encoding header: String encoding = getContentEncoding(); if ( !req.containsHeader( ACCEPT_ENC_HDR ) ) req.addHeader( ACCEPT_ENC_HDR, encoding ); else { StringBuilder values = new StringBuilder(); for ( Header h : req.getHeaders( ACCEPT_ENC_HDR ) ) values.append( h.getValue() ).append( "," ); String encList = (!values.toString().contains( encoding )) ? values .append( encoding ).toString() : values.toString().substring( 0, values.lastIndexOf( "," ) ); req.setHeader( ACCEPT_ENC_HDR, encList ); } //TODO compress request and add content-encoding header. } }
public Header[] getHeaders(String name) { return this.request.getHeaders(name); }
private boolean hasValidDateField(final HttpRequest request, final String headerName) { for(final Header h : request.getHeaders(headerName)) { final Date date = DateUtils.parseDate(h.getValue()); return date != null; } return false; } }
@Override public List<String> getHeaders(String headerName) { Header[] headers = httpRequest.getHeaders(headerName); List<String> headerValues = new ArrayList<String>(headers.length); for (int i = 0; i < headers.length; i++) { headerValues.add(headers[i].getValue()); } if(this.host!=null && headerValues.isEmpty() && headerName.equalsIgnoreCase("host")){ headerValues.add(host); } return headerValues; } }
private boolean hasValidDateField(HttpRequest request, String headerName) { for(Header h : request.getHeaders(headerName)) { try { DateUtils.parseDate(h.getValue()); return true; } catch (DateParseException dpe) { // ignore malformed dates } } return false; } }
private boolean mayCallBackend(HttpRequest request) { for (Header h: request.getHeaders(HeaderConstants.CACHE_CONTROL)) { for (HeaderElement elt : h.getElements()) { if ("only-if-cached".equals(elt.getName())) { return false; } } } return true; }
@SuppressWarnings("unused") protected void prepareRequest(HttpHost target, HttpRequest request) throws ClientProtocolException { if (userAgentSelector != null) { final Header[] headers = request.getHeaders(HTTP.USER_AGENT); if (headers == null || headers.length == 0) { request.setHeader(HTTP.USER_AGENT, userAgentSelector.getUserAgent()); } } }
private void tryCloseConnection(HttpRequest request) { Header[] headers = request.getHeaders("Connection"); if (headers != null && headers.length > 0) { for (Header h : headers) { request.removeHeader(h); } } request.addHeader("Connection", "close"); }
private String extractHeader(final HttpHeader header) { LOGGER.debug("extractHeader: {}", header.toString()); final Header[] requestHeaders = httpRequest.getHeaders(header.toString()); return SentiloUtils.arrayIsEmpty(requestHeaders) ? null : requestHeaders[0].getValue(); }
private RequestProtocolError requestContainsNoCacheDirectiveWithFieldName(final HttpRequest request) { for(final Header h : request.getHeaders(HeaderConstants.CACHE_CONTROL)) { for(final HeaderElement elt : h.getElements()) { if (HeaderConstants.CACHE_CONTROL_NO_CACHE.equalsIgnoreCase(elt.getName()) && elt.getValue() != null) { return RequestProtocolError.NO_CACHE_DIRECTIVE_WITH_FIELD_NAME; } } } return null; } }
private RequestProtocolError requestContainsNoCacheDirectiveWithFieldName(HttpRequest request) { for(Header h : request.getHeaders(HeaderConstants.CACHE_CONTROL)) { for(HeaderElement elt : h.getElements()) { if (HeaderConstants.CACHE_CONTROL_NO_CACHE.equalsIgnoreCase(elt.getName()) && elt.getValue() != null) { return RequestProtocolError.NO_CACHE_DIRECTIVE_WITH_FIELD_NAME; } } } return null; } }
private void add100ContinueHeaderIfMissing(HttpRequest request) { boolean hasHeader = false; for (Header h : request.getHeaders(HTTP.EXPECT_DIRECTIVE)) { for (HeaderElement elt : h.getElements()) { if (HTTP.EXPECT_CONTINUE.equalsIgnoreCase(elt.getName())) { hasHeader = true; } } } if (!hasHeader) { request.addHeader(HTTP.EXPECT_DIRECTIVE, HTTP.EXPECT_CONTINUE); } }
private void add100ContinueHeaderIfMissing(final HttpRequest request) { boolean hasHeader = false; for (final Header h : request.getHeaders(HTTP.EXPECT_DIRECTIVE)) { for (final HeaderElement elt : h.getElements()) { if (HTTP.EXPECT_CONTINUE.equalsIgnoreCase(elt.getName())) { hasHeader = true; } } } if (!hasHeader) { request.addHeader(HTTP.EXPECT_DIRECTIVE, HTTP.EXPECT_CONTINUE); } }
public static void logHeaders(StringBuilder sb, int id, char prefix, org.apache.http.HttpRequest request, HttpRequest actual) { for (String key : sortKeys(request.getAllHeaders())) { Header[] headers = request.getHeaders(key); logHeaderLine(sb, id, prefix, key, headers); for (Header header : headers) { actual.addHeader(header.getName(), header.getValue()); } } }
private static void setOriginatingRequestVector(HttpRequest request) { final Header[] existingRequestVectorHeaders = request.getHeaders(TrackingHttpHeaderNames.REQUEST_VECTOR); if (existingRequestVectorHeaders.length > 0) { return; } final String sourceRequestVector = MDC.get(LogUtil.REQUEST_VECTOR); // set originating request ID for the outgoing request if (sourceRequestVector != null) { final String nestedRequestVector = TrackingHttpHeaderNames.getNestedRequestVector(sourceRequestVector); request.setHeader(TrackingHttpHeaderNames.REQUEST_VECTOR, nestedRequestVector); } } }
public boolean mayReturnStaleIfError(final HttpRequest request, final HttpCacheEntry entry, final Date now) { final long stalenessSecs = getStalenessSecs(entry, now); return mayReturnStaleIfError(request.getHeaders(HeaderConstants.CACHE_CONTROL), stalenessSecs) || mayReturnStaleIfError(entry.getHeaders(HeaderConstants.CACHE_CONTROL), stalenessSecs); }
public boolean mayReturnStaleIfError(HttpRequest request, HttpCacheEntry entry, Date now) { long stalenessSecs = getStalenessSecs(entry, now); return mayReturnStaleIfError(request.getHeaders(HeaderConstants.CACHE_CONTROL), stalenessSecs) || mayReturnStaleIfError(entry.getHeaders(HeaderConstants.CACHE_CONTROL), stalenessSecs); }