@Test public void postLargeFileOverHttps() throws Throwable { logger.debug(">>> postLargeFileOverHttps"); withClient(config().setSslEngineFactory(createSslEngineFactory())).run(client -> withServer(server).run(server -> { server.enqueueEcho(); Response resp = client.preparePost(getTargetUrl()).setBody(LARGE_IMAGE_FILE).setHeader(CONTENT_TYPE, "image/png").execute().get(); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getResponseBodyAsBytes().length, LARGE_IMAGE_FILE.length()); })); logger.debug("<<< postLargeFileOverHttps"); }
@Test public void postFileOverHttps() throws Throwable { logger.debug(">>> postBodyOverHttps"); withClient(config().setSslEngineFactory(createSslEngineFactory())).run(client -> withServer(server).run(server -> { server.enqueueEcho(); Response resp = client.preparePost(getTargetUrl()).setBody(SIMPLE_TEXT_FILE).setHeader(CONTENT_TYPE, "text/html").execute().get(); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getResponseBody(), SIMPLE_TEXT_FILE_STRING); })); logger.debug("<<< postBodyOverHttps"); }
@Test public void reconnectAfterFailedCertificationPath() throws Throwable { logger.debug(">>> reconnectAfterFailedCertificationPath"); AtomicBoolean trust = new AtomicBoolean(); withClient(config().setMaxRequestRetry(0).setSslEngineFactory(createSslEngineFactory(trust))).run(client -> withServer(server).run(server -> { server.enqueueEcho(); server.enqueueEcho(); String body = "hello there"; // first request fails because server certificate is rejected Throwable cause = null; try { client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute().get(TIMEOUT, SECONDS); } catch (final ExecutionException e) { cause = e.getCause(); } assertNotNull(cause); // second request should succeed trust.set(true); Response response = client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute().get(TIMEOUT, SECONDS); assertEquals(response.getResponseBody(), body); })); logger.debug("<<< reconnectAfterFailedCertificationPath"); }
logger.debug(">>> testNormalEventsFired"); withClient(config().setSslEngineFactory(createSslEngineFactory())).run(client -> withServer(server).run(server -> { EventCollectingHandler handler = new EventCollectingHandler();
@Test public void multipleConcurrentPostRequestsOverHttpsWithDisabledKeepAliveStrategy() throws Throwable { logger.debug(">>> multipleConcurrentPostRequestsOverHttpsWithDisabledKeepAliveStrategy"); KeepAliveStrategy keepAliveStrategy = (ahcRequest, nettyRequest, nettyResponse) -> !ahcRequest.getUri().isSecured(); withClient(config().setSslEngineFactory(createSslEngineFactory()).setKeepAliveStrategy(keepAliveStrategy)).run(client -> withServer(server).run(server -> { server.enqueueEcho(); server.enqueueEcho(); server.enqueueEcho(); String body = "hello there"; client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute(); client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute(); Response response = client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute().get(); assertEquals(response.getResponseBody(), body); })); logger.debug("<<< multipleConcurrentPostRequestsOverHttpsWithDisabledKeepAliveStrategy"); }
@Test public void multipleSequentialPostRequestsOverHttps() throws Throwable { logger.debug(">>> multipleSequentialPostRequestsOverHttps"); withClient(config().setSslEngineFactory(createSslEngineFactory())).run(client -> withServer(server).run(server -> { server.enqueueEcho(); server.enqueueEcho(); String body = "hello there"; Response response = client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute().get(TIMEOUT, SECONDS); assertEquals(response.getResponseBody(), body); response = client.preparePost(getTargetUrl()).setBody(body).setHeader(CONTENT_TYPE, "text/html").execute().get(TIMEOUT, SECONDS); assertEquals(response.getResponseBody(), body); })); logger.debug("<<< multipleSequentialPostRequestsOverHttps"); }
public Builder setSslEngineFactory(SslEngineFactory sslEngineFactory) { configBuilder.setSslEngineFactory(sslEngineFactory); return this; }