@Test public void testRequestConnControlInvalidInput() throws Exception { final RequestConnControl interceptor = new RequestConnControl(); try { interceptor.process(null, null, null); Assert.fail("IllegalArgumentException should have been thrown"); } catch (final IllegalArgumentException ex) { // expected } }
.addAll(new RequestContent(), new RequestTargetHost(), new RequestConnControl(), new RequestUserAgent("HTTP/1.1")) .build();
@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); } }
.add(new RequestContent()) .add(new RequestTargetHost()) .add(new RequestConnControl()) .add(new RequestUserAgent("Test/1.1")) .add(new RequestExpectContinue(true)).build();
@Test public void testRequestConnControlConnectMethod() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("CONNECT", "/"); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNull(header); }
new RequestTargetHost(), new RequestConnControl(), new RequestUserAgent(), new RequestExpectContinue()});
@Test public void testRequestConnControlGenerated() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("keep-alive", header.getValue()); }
new RequestContent(), new RequestTargetHost(), new RequestConnControl(), new RequestUserAgent()});
@Test public void testRequestConnControlUpgrade() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); request.addHeader(HttpHeaders.UPGRADE, "HTTP/2"); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("upgrade", header.getValue()); }
/** * Creates {@link HttpProcessorBuilder} initialized with default protocol interceptors * for client side HTTP/1.1 processing. * * @param agentInfo the agent info text or {@code null} for default. * @return the processor builder. */ public static HttpProcessorBuilder customClient(final String agentInfo) { return HttpProcessorBuilder.create() .addAll( new RequestContent(), new RequestTargetHost(), new RequestConnControl(), new RequestUserAgent(!TextUtils.isBlank(agentInfo) ? agentInfo : VersionInfo.getSoftwareInfo(SOFTWARE, "org.apache.hc.core5", HttpProcessors.class)), new RequestExpectContinue()); }
@Test public void testRequestConnControlCustom() throws Exception { final HttpContext context = new BasicHttpContext(null); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/"); final Header myheader = new BasicHeader(HttpHeaders.CONNECTION, "close"); request.addHeader(myheader); final RequestConnControl interceptor = new RequestConnControl(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.CONNECTION); Assert.assertNotNull(header); Assert.assertEquals("close", header.getValue()); Assert.assertTrue(header == myheader); }
/** * Creates {@link HttpProcessorBuilder} initialized with default protocol interceptors * for client side HTTP/1.1 processing. * * @param agentInfo the agent info text or {@code null} for default. * @return the processor builder. */ public static HttpProcessorBuilder customClient(final String agentInfo) { return HttpProcessorBuilder.create() .addAll( new RequestContent(), new RequestTargetHost(), new RequestConnControl(), new RequestUserAgent(!TextUtils.isBlank(agentInfo) ? agentInfo : VersionInfo.getSoftwareInfo(SOFTWARE, "org.apache.hc.core5", HttpProcessors.class)), new RequestExpectContinue()); }
httpproc.addInterceptor(new RequestTargetHost()); httpproc.addInterceptor(new RequestConnControl()); httpproc.addInterceptor(new RequestUserAgent()); httpproc.addInterceptor(new RequestExpectContinue());
@Test public void testBuildChain() throws Exception { final ChainBuilder<HttpRequestInterceptor> cb = new ChainBuilder<>(); final HttpRequestInterceptor i1 = new RequestContent(); final HttpRequestInterceptor i2 = new RequestTargetHost(); final HttpRequestInterceptor i3 = new RequestConnControl(); final HttpRequestInterceptor i4 = new RequestUserAgent(); final HttpRequestInterceptor i5 = new RequestExpectContinue(); cb.addFirst(i1); cb.addAllFirst(i2, i3); cb.addFirst(null); cb.addAllFirst((List<HttpRequestInterceptor>) null); cb.addLast(i4); cb.addLast(null); cb.addAllLast(i5); cb.addAllLast((List<HttpRequestInterceptor>) null); cb.addFirst(i1); cb.addAllLast(i3, i4, i5); final LinkedList<HttpRequestInterceptor> list = cb.build(); Assert.assertNotNull(list); Assert.assertEquals(5, list.size()); Assert.assertSame(i1, list.get(0)); Assert.assertSame(i2, list.get(1)); Assert.assertSame(i3, list.get(2)); Assert.assertSame(i4, list.get(3)); Assert.assertSame(i5, list.get(4)); }