@Override public void process( final HttpResponse response, final EntityDetails entity, final HttpContext context) throws HttpException, IOException { Args.notNull(context, "HTTP context"); final ProtocolVersion ver = context.getProtocolVersion(); if (ver.getMajor() < 2) { super.process(response, entity, context); } else if (entity != null) { MessageSupport.addContentTypeHeader(response, entity); MessageSupport.addContentEncodingHeader(response, entity); MessageSupport.addTrailerHeader(response, entity); } }
@Override public void process( final HttpRequest request, final EntityDetails entity, final HttpContext context) throws HttpException, IOException { Args.notNull(context, "HTTP context"); final ProtocolVersion ver = context.getProtocolVersion(); if (ver.getMajor() < 2) { super.process(request, entity, context); } else if (entity != null) { MessageSupport.addContentTypeHeader(request, entity); MessageSupport.addContentEncodingHeader(request, entity); MessageSupport.addTrailerHeader(request, entity); } } }
MessageSupport.addTrailerHeader(request, entity); } else { request.addHeader(HttpHeaders.CONTENT_LENGTH, Long.toString(entity.getContentLength()));
MessageSupport.addTrailerHeader(request, entity); } else { request.addHeader(HttpHeaders.CONTENT_LENGTH, Long.toString(entity.getContentLength()));
} else if (ver.greaterEquals(HttpVersion.HTTP_1_1)) { response.addHeader(HttpHeaders.TRANSFER_ENCODING, HeaderElements.CHUNKED_ENCODING); MessageSupport.addTrailerHeader(response, entity);
} else if (ver.greaterEquals(HttpVersion.HTTP_1_1)) { response.addHeader(HttpHeaders.TRANSFER_ENCODING, HeaderElements.CHUNKED_ENCODING); MessageSupport.addTrailerHeader(response, entity);
@Test public void testAddContentHeaders() throws Exception { final HttpEntityWithTrailers entity = new HttpEntityWithTrailers( new StringEntity("some stuff with trailers", StandardCharsets.US_ASCII), new BasicHeader("z", "this"), new BasicHeader("b", "that"), new BasicHeader("a", "this and that")); final HttpMessage message = new BasicHttpResponse(200); MessageSupport.addTrailerHeader(message, entity); MessageSupport.addContentTypeHeader(message, entity); final Header h1 = message.getFirstHeader(HttpHeaders.TRAILER); final Header h2 = message.getFirstHeader(HttpHeaders.CONTENT_TYPE); Assert.assertNotNull(h1); Assert.assertEquals("a, b, z", h1.getValue()); Assert.assertNotNull(h2); Assert.assertEquals("text/plain; charset=US-ASCII", h2.getValue()); }
@Test public void testContentHeadersAlreadyPresent() throws Exception { final HttpEntityWithTrailers entity = new HttpEntityWithTrailers( new StringEntity("some stuff with trailers", StandardCharsets.US_ASCII), new BasicHeader("z", "this"), new BasicHeader("b", "that"), new BasicHeader("a", "this and that")); final HttpMessage message = new BasicHttpResponse(200); message.addHeader(HttpHeaders.TRAILER, "a, a, a"); message.addHeader(HttpHeaders.CONTENT_TYPE, "text/plain; charset=ascii"); MessageSupport.addTrailerHeader(message, entity); MessageSupport.addContentTypeHeader(message, entity); final Header h1 = message.getFirstHeader(HttpHeaders.TRAILER); final Header h2 = message.getFirstHeader(HttpHeaders.CONTENT_TYPE); Assert.assertNotNull(h1); Assert.assertEquals("a, a, a", h1.getValue()); Assert.assertNotNull(h2); Assert.assertEquals("text/plain; charset=ascii", h2.getValue()); }