Refine search
@Test public void testUrlRequestParametersEncoding() throws IOException, ExecutionException, InterruptedException { String URL = getTargetUrl() + "?q="; String REQUEST_PARAM = "github github \ngithub"; try (AsyncHttpClient client = asyncHttpClient()) { String requestUrl2 = URL + URLEncoder.encode(REQUEST_PARAM, UTF_8.name()); logger.info("Executing request [{}] ...", requestUrl2); Response response = client.prepareGet(requestUrl2).execute().get(); String s = URLDecoder.decode(response.getHeader("q"), UTF_8.name()); assertEquals(s, REQUEST_PARAM); } }
@Test public void nonPoolableConnectionReleaseSemaphoresTest() throws Throwable { RequestBuilder request = get(getTargetUrl()).setHeader("Connection", "close"); try (AsyncHttpClient client = asyncHttpClient(config().setMaxConnections(6).setMaxConnectionsPerHost(3))) { client.executeRequest(request).get(); Thread.sleep(1000); client.executeRequest(request).get(); Thread.sleep(1000); client.executeRequest(request).get(); Thread.sleep(1000); client.executeRequest(request).get(); } }
private void expectSuccess(Function<BoundRequestBuilder, BoundRequestBuilder> f) throws Exception { File file = createTempFile(1024 * 1024); try (AsyncHttpClient client = asyncHttpClient()) { for (int i = 0; i < 20; i++) { Response response = f.apply(client.preparePut(getTargetUrl()) .addBodyPart(new FilePart("test", file, APPLICATION_OCTET_STREAM.toString(), UTF_8))) .execute().get(); assertEquals(response.getStatusCode(), 200); assertEquals(response.getResponseBodyAsBytes().length, Integer.valueOf(response.getHeader("X-" + CONTENT_LENGTH)).intValue()); } } }
@Test public void streamedResponseSmallFileTest() throws Throwable { try (AsyncHttpClient c = asyncHttpClient()) { String smallFileName = "http://localhost:" + serverPort + "/" + smallFile.getName(); ListenableFuture<SimpleStreamedAsyncHandler> future = c.prepareGet(smallFileName).execute(new SimpleStreamedAsyncHandler()); byte[] result = future.get().getBytes(); LOGGER.debug("Result file size: " + result.length); assertEquals(result.length, smallFile.length()); } }
@Test public void streamedResponseLargeFileTest() throws Throwable { try (AsyncHttpClient c = asyncHttpClient()) { String largeFileName = "http://localhost:" + serverPort + "/" + largeFile.getName(); ListenableFuture<SimpleStreamedAsyncHandler> future = c.prepareGet(largeFileName).execute(new SimpleStreamedAsyncHandler()); byte[] result = future.get().getBytes(); assertEquals(result.length, largeFile.length()); } }
@Test public void mkcolWebDavTest1() throws InterruptedException, IOException, ExecutionException { try (AsyncHttpClient c = asyncHttpClient()) { Request mkcolRequest = new RequestBuilder("MKCOL").setUrl(getTargetUrl()).build(); Response response = c.executeRequest(mkcolRequest).get(); assertEquals(response.getStatusCode(), 201); } }
private WebSocket getWebSocket(final AsyncHttpClient c, CountDownLatch closeLatch) throws Exception { return c.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketListener() { @Override public void onOpen(WebSocket websocket) { } @Override public void onError(Throwable t) { } @Override public void onClose(WebSocket websocket, int code, String reason) { closeLatch.countDown(); } }).build()).get(); } }
@Test(groups = "online", enabled = false) public void redirected302InvalidTest() throws Exception { isSet.getAndSet(false); Exception e = null; try (AsyncHttpClient c = asyncHttpClient()) { c.preparePost(getTargetUrl()).setFollowRedirect(true).setHeader("X-redirect", String.format("http://localhost:%d/", port2)).execute().get(); } catch (ExecutionException ex) { e = ex; } assertNotNull(e); Throwable cause = e.getCause(); assertTrue(cause instanceof ConnectException); assertTrue(cause.getMessage().contains(":" + port2)); }
@Test public void mkcolWebDavTest2() throws InterruptedException, IOException, ExecutionException { try (AsyncHttpClient c = asyncHttpClient()) { Request mkcolRequest = new RequestBuilder("MKCOL").setUrl(getTargetUrl() + "/folder2").build(); Response response = c.executeRequest(mkcolRequest).get(); assertEquals(response.getStatusCode(), 409); } }
private void put(int fileSize) throws Exception { File file = createTempFile(fileSize); try (AsyncHttpClient client = asyncHttpClient(config().setRequestTimeout(2000))) { Response response = client.preparePut(getTargetUrl()).setBody(file).execute().get(); assertEquals(response.getStatusCode(), 200); } }
@Test public void testListenableFutureAfterCompletion() throws Exception { final CountDownLatch latch = new CountDownLatch(1); try (AsyncHttpClient ahc = asyncHttpClient()) { final ListenableFuture<Response> future = ahc.prepareGet(getTargetUrl()).execute(); future.get(); future.addListener(latch::countDown, Runnable::run); } latch.await(10, TimeUnit.SECONDS); }
@Test public void basicPropFindWebDavTest() throws InterruptedException, IOException, ExecutionException { try (AsyncHttpClient c = asyncHttpClient()) { Request propFindRequest = new RequestBuilder("PROPFIND").setUrl(getTargetUrl()).build(); Response response = c.executeRequest(propFindRequest).get(); assertEquals(response.getStatusCode(), 404); } }
@Test public void urlWithColonTest() throws Exception { try (AsyncHttpClient c = asyncHttpClient()) { String query = "test:colon:"; Response response = c.prepareGet(String.format("http://localhost:%d/foo/test/colon?q=%s", port1, query)).setHeader("Content-Type", "text/html").execute().get(TIMEOUT, TimeUnit.SECONDS); assertEquals(response.getHeader("q"), query); } }
@Test public void propFindWebDavTest() throws InterruptedException, IOException, ExecutionException { try (AsyncHttpClient c = asyncHttpClient()) { Request mkcolRequest = new RequestBuilder("MKCOL").setUrl(getTargetUrl()).build(); Response response = c.executeRequest(mkcolRequest).get(); assertEquals(response.getStatusCode(), 201); Request putRequest = put(getTargetUrl() + "/Test.txt").setBody("this is a test").build(); response = c.executeRequest(putRequest).get(); assertEquals(response.getStatusCode(), 201); Request propFindRequest = new RequestBuilder("PROPFIND").setUrl(getTargetUrl() + "/Test.txt").build(); response = c.executeRequest(propFindRequest).get(); assertEquals(response.getStatusCode(), 207); assertTrue(response.getResponseBody().contains("HTTP/1.1 200 OK"), "Got " + response.getResponseBody()); } }
@Test public void testListenableFuture() throws Exception { final AtomicInteger statusCode = new AtomicInteger(500); try (AsyncHttpClient ahc = asyncHttpClient()) { final CountDownLatch latch = new CountDownLatch(1); final ListenableFuture<Response> future = ahc.prepareGet(getTargetUrl()).execute(); future.addListener(() -> { try { statusCode.set(future.get().getStatusCode()); latch.countDown(); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } }, Executors.newFixedThreadPool(1)); latch.await(10, TimeUnit.SECONDS); assertEquals(statusCode.get(), 200); } }
@Test public void testPooledConnectionsWithProxy() throws Exception { try (AsyncHttpClient asyncHttpClient = asyncHttpClient(config().setFollowRedirect(true).setUseInsecureTrustManager(true).setKeepAlive(true))) { RequestBuilder rb = get(getTargetUrl2()).setProxyServer(proxyServer("localhost", port1)); Response r1 = asyncHttpClient.executeRequest(rb.build()).get(); assertEquals(r1.getStatusCode(), 200); Response r2 = asyncHttpClient.executeRequest(rb.build()).get(); assertEquals(r2.getStatusCode(), 200); } } }
@Test(enabled = false) public void redirected302InvalidTest() throws Exception { isSet.getAndSet(false); Exception e = null; try (AsyncHttpClient c = asyncHttpClient(config().setFollowRedirect(true))) { c.prepareGet(getTargetUrl()).setHeader("X-redirect", String.format("http://localhost:%d/", port2)).execute().get(); } catch (ExecutionException ex) { e = ex; } assertNotNull(e); Throwable cause = e.getCause(); assertTrue(cause instanceof ConnectException); assertTrue(cause.getMessage().contains(":" + port2)); }
@Test public void headHasEmptyBody() throws Throwable { withClient().run(client -> withServer(server).run(server -> { server.enqueueOk(); Response response = client.executeRequest(head(getTargetUrl()), new AsyncCompletionHandlerAdapter() { @Override public Response onCompleted(Response response) { assertEquals(response.getStatusCode(), 200); return response; } }).get(TIMEOUT, SECONDS); assertTrue(response.getResponseBody().isEmpty()); })); }