@Test(groups = { "standalone", "default_provider" }, enabled = false) public void basicFutureAuthTimeoutTest() throws Exception { setUpServer(Constraint.__BASIC_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, false); f.get(1, TimeUnit.SECONDS); fail("expected timeout"); } catch (Exception e) { inspectException(e); } }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void digestPreemptiveAuthTimeoutTest() throws Exception { setUpServer(Constraint.__DIGEST_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, true); f.get(); fail("expected timeout"); } catch (Exception e) { inspectException(e); } }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void digestFutureAuthTimeoutTest() throws Exception { setUpServer(Constraint.__DIGEST_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, false); f.get(1, TimeUnit.SECONDS); fail("expected timeout"); } catch (Exception e) { inspectException(e); } }
@Test(groups = { "standalone", "default_provider" }) public void idleRequestTimeoutTest() throws Exception { try (AsyncHttpClient client = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(5000) .setRequestTimeout(10000).build())) { FluentCaseInsensitiveStringsMap h = new FluentCaseInsensitiveStringsMap(); h.add("Content-Type", "application/x-www-form-urlencoded"); h.add("LockThread", "true"); long t1 = millisTime(); try { client.prepareGet(getTargetUrl()).setHeaders(h).setUrl(getTargetUrl()).execute(new AsyncHandlerAdapter() { @Override public void onThrowable(Throwable t) { // t.printStackTrace(); } }).get(); Assert.fail(); } catch (Throwable ex) { final long elapsedTime = millisTime() - t1; System.out.println("EXPIRED: " + (elapsedTime)); Assert.assertNotNull(ex.getCause()); Assert.assertTrue(elapsedTime >= 10000 && elapsedTime <= 25000); } } }
@Test(invocationCount = 4, groups = { "online", "default_provider" }) public void multipleSslRequestsWithDelayAndKeepAlive() throws Throwable { AsyncHttpClientConfig.Builder configBuilder = new AsyncHttpClientConfig.Builder().setFollowRedirect(true).setSSLContext(getSSLContext()).setAllowPoolingConnections(true).setConnectTimeout(10000) .setPooledConnectionIdleTimeout(60000).setRequestTimeout(10000).setMaxConnectionsPerHost(-1).setMaxConnections(-1); try (AsyncHttpClient client = getAsyncHttpClient(configBuilder.build())) { final BoundRequestBuilder builder = client.prepareGet(VERISIGN_HTTPS_URL); final Response response1 = builder.execute().get(); Thread.sleep(4000); final Response response2 = builder.execute().get(); if (response2 != null) { System.out.println("Success (2nd response was not null)."); } else { System.out.println("Failed (2nd response was null)."); } Assert.assertNotNull(response1); Assert.assertNotNull(response2); } }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void basicPreemptiveAuthTimeoutTest() throws Exception { setUpServer(Constraint.__BASIC_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, true); try { f.get(); fail("expected timeout"); } catch (Exception e) { inspectException(e); } } }
private void configureConnections(AsyncHttpClientConfig.Builder builder) throws InitialisationException { if (maxConnections > 0) { builder.addRequestFilter(new CustomTimeoutThrottleRequestFilter(maxConnections)); } builder.setMaxConnections(maxConnections); builder.setMaxConnectionsPerHost(maxConnections); builder.setAllowPoolingConnections(usePersistentConnections); builder.setAllowPoolingSslConnections(usePersistentConnections); builder.setConnectionTTL(MAX_CONNECTION_LIFETIME); builder.setPooledConnectionIdleTimeout(connectionIdleTimeout); builder.setIOThreadMultiplier(1); }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void basicAuthTimeoutTest() throws Exception { setUpServer(Constraint.__BASIC_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, false); try { f.get(); fail("expected timeout"); } catch (Exception e) { inspectException(e); } } }
public Builder setPooledConnectionIdleTimeout(int pooledConnectionIdleTimeout) { configBuilder.setPooledConnectionIdleTimeout(pooledConnectionIdleTimeout); return this; }
public Builder setPooledConnectionIdleTimeout(int pooledConnectionIdleTimeout) { configBuilder.setPooledConnectionIdleTimeout(pooledConnectionIdleTimeout); return this; }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void digestAuthTimeoutTest() throws Exception { setUpServer(Constraint.__DIGEST_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, false); try { f.get(); fail("expected timeout"); } catch (Exception e) { inspectException(e); } } }
public Builder setPooledConnectionIdleTimeout(int pooledConnectionIdleTimeout) { configBuilder.setPooledConnectionIdleTimeout(pooledConnectionIdleTimeout); return this; }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void digestFuturePreemptiveAuthTimeoutTest() throws Exception { setUpServer(Constraint.__DIGEST_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, true); f.get(1, TimeUnit.SECONDS); fail("expected timeout"); } catch (Exception e) { inspectException(e); } }
@Test(groups = { "standalone", "default_provider" }, enabled = false) public void basicFuturePreemptiveAuthTimeoutTest() throws Exception { setUpServer(Constraint.__BASIC_AUTH); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(2000).setConnectTimeout(20000).setRequestTimeout(2000).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Future<Response> f = execute(client, true); f.get(1, TimeUnit.SECONDS); fail("expected timeout"); } catch (Exception e) { inspectException(e); } }
public void setIdleConnectionInPoolTimeoutInMs(int defaultIdleConnectionInPoolTimeoutInMs) { builder.setPooledConnectionIdleTimeout(defaultIdleConnectionInPoolTimeoutInMs); }
@Test(groups = {"online", "default_provider"}) public void idleStateTest() throws Throwable { isSet.getAndSet(false); AsyncHttpClientConfig cg = new AsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(10 * 1000).build(); try (AsyncHttpClient client = getAsyncHttpClient(cg)) { client.prepareGet(getTargetUrl()).execute().get(); } } }
/** * Set the maximum number of milliseconds an idle pooled connection will be be kept. * * @param pooledConnectionIdleTimeout the timeout in milliseconds. * @return this config builder. */ public Builder pooledConnectionIdleTimeout(final int pooledConnectionIdleTimeout) { clientConfig.setPooledConnectionIdleTimeout(pooledConnectionIdleTimeout); return this; }
private void configureConnections(AsyncHttpClientConfig.Builder builder) { if (maxConnections > 0) { builder.addRequestFilter(new CustomTimeoutThrottleRequestFilter(maxConnections)); } builder.setMaxConnections(maxConnections); builder.setMaxConnectionsPerHost(maxConnections); builder.setAllowPoolingConnections(usePersistentConnections); builder.setAllowPoolingSslConnections(usePersistentConnections); builder.setConnectionTTL(MAX_CONNECTION_LIFETIME); builder.setPooledConnectionIdleTimeout(connectionIdleTimeout); builder.setIOThreadMultiplier(1); }
AsyncHttpClient buildDefaultClient() { builder.setMaxRequestRetry(maxRequestRetry)//尝试重试次数 .setAllowPoolingConnections(allowPollingConnections)//开启连接池模式 .setMaxConnections(maxConnections)//最大连接数 .setConnectTimeout(connectTimeout)//连接超时时间 .setPooledConnectionIdleTimeout(readTimeout)//设置连接池超时时间 .setReadTimeout(readTimeout)//读取请求超时时间 .setFollowRedirect(followRedirect)//开启重定向追踪 .setMaxRedirects(maxRedirects)//重定向次数限制 .setUserAgent(userAgent)//设置UserAgent .setMaxConnectionsPerHost(maxConnectionsPerHost)//设置初始连接池大小 .setIOThreadMultiplier(ioThreadMultiplier)//用于IO的线程数 .setCompressionEnforced(compressionEnforced)//压缩执行 ; return new AsyncHttpClient(builder.build()); }
public Builder setPooledConnectionIdleTimeout(int pooledConnectionIdleTimeout) { configBuilder.setPooledConnectionIdleTimeout(pooledConnectionIdleTimeout); return this; }