List of usage examples for org.apache.http.client.config RequestConfig getConnectTimeout
public int getConnectTimeout()
From source file:io.cloudslang.content.httpclient.build.RequestConfigBuilderTest.java
@Test public void buildProxyRoute() throws URISyntaxException, HttpException { RequestConfig reqConfig = requestConfigBuilder.setProxyHost("myproxy.com").setProxyPort("80") .setSocketTimeout("-2").setConnectionTimeout("-2").setFollowRedirects("false").buildRequestConfig(); assertNotNull(reqConfig);/*from www . j a va 2s . c o m*/ assertFalse(reqConfig.isRedirectsEnabled()); assertEquals("-2", String.valueOf(reqConfig.getConnectTimeout())); assertEquals("-2", String.valueOf(reqConfig.getSocketTimeout())); assertNotNull(reqConfig.getProxy()); assertEquals("myproxy.com", reqConfig.getProxy().getHostName()); assertEquals("80", String.valueOf(reqConfig.getProxy().getPort())); }
From source file:org.apache.metron.stellar.dsl.functions.RestFunctionsTest.java
/** * The REST_GET function should properly set the HttpClient timeout settings and proxy *//* ww w. java2 s . c o m*/ @Test public void restGetShouldGetRequestConfig() { RestFunctions.RestGet restGet = new RestFunctions.RestGet(); { RequestConfig actual = restGet.getRequestConfig(new RestConfig(), Optional.empty()); RequestConfig expected = RequestConfig.custom().build(); assertEquals(expected.getConnectTimeout(), actual.getConnectTimeout()); assertEquals(expected.getConnectionRequestTimeout(), actual.getConnectionRequestTimeout()); assertEquals(expected.getSocketTimeout(), actual.getSocketTimeout()); assertEquals(expected.getProxy(), actual.getProxy()); } { RestConfig restConfig = new RestConfig(); restConfig.put(CONNECT_TIMEOUT, 1); restConfig.put(CONNECTION_REQUEST_TIMEOUT, 2); restConfig.put(SOCKET_TIMEOUT, 3); HttpHost proxy = new HttpHost("localhost", proxyRule.getHttpPort()); Optional<HttpHost> proxyOptional = Optional.of(proxy); RequestConfig actual = restGet.getRequestConfig(restConfig, proxyOptional); RequestConfig expected = RequestConfig.custom().setConnectTimeout(1).setConnectionRequestTimeout(2) .setSocketTimeout(3).setProxy(proxy).build(); assertEquals(expected.getConnectTimeout(), actual.getConnectTimeout()); assertEquals(expected.getConnectionRequestTimeout(), actual.getConnectionRequestTimeout()); assertEquals(expected.getSocketTimeout(), actual.getSocketTimeout()); assertEquals(expected.getProxy(), actual.getProxy()); } }
From source file:br.com.autonomiccs.apacheCloudStack.client.ApacheCloudStackClientTest.java
private void testRequestConfig(final RequestConfig config, final int timeout) { Assert.assertEquals(config.getConnectTimeout(), timeout * (int) DateUtils.MILLIS_PER_SECOND); Assert.assertEquals(config.getConnectionRequestTimeout(), timeout * (int) DateUtils.MILLIS_PER_SECOND); Assert.assertEquals(config.getSocketTimeout(), timeout * (int) DateUtils.MILLIS_PER_SECOND); }
From source file:com.lehman.ic9.net.httpClient.java
/** * Gets the connection timeout in milliseconds. * @return An int with the connection timeout. *//*from w w w . j av a2 s . c om*/ public int getConnectTimeout() { RequestConfig rc = this.rcb.build(); return rc.getConnectTimeout(); }
From source file:org.sonatype.nexus.plugins.crowd.client.rest.RestClient.java
RestClient(CrowdPluginConfiguration config) throws URISyntaxException { crowdServer = new URI(config.getCrowdServerUrl()).resolve("rest/usermanagement/1/"); crowdCreds = new UsernamePasswordCredentials(config.getApplicationName(), config.getApplicationPassword()); // configure the http client RequestConfig.Builder reqConfigBuilder = RequestConfig.custom().setAuthenticationEnabled(true) .setConnectTimeout(config.getHttpTimeout()).setSocketTimeout(config.getHttpTimeout()); cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(config.getHttpMaxConnections()); cm.setDefaultMaxPerRoute(config.getHttpMaxConnections()); // proxy settings CredentialsProvider credsProvider = new BasicCredentialsProvider(); if (StringUtils.isNotBlank(config.getHttpProxyHost()) && config.getHttpProxyPort() > 0) { HttpHost proxy = new HttpHost(config.getHttpProxyHost(), config.getHttpProxyPort()); reqConfigBuilder.setProxy(proxy); if (config.getHttpProxyUsername() != null && config.getHttpProxyPassword() != null) { credsProvider.setCredentials(new AuthScope(proxy), new UsernamePasswordCredentials( config.getHttpProxyUsername(), config.getHttpProxyPassword())); }/*from w ww . j ava 2s . c om*/ } RequestConfig reqConfig = reqConfigBuilder.build(); HttpClientBuilder hcBuilder = HttpClients.custom().setMaxConnPerRoute(config.getHttpMaxConnections()) .setMaxConnTotal(config.getHttpMaxConnections()).setConnectionManager(cm) .setDefaultCredentialsProvider(credsProvider).setDefaultRequestConfig(reqConfig); // handling of compressed responses hcBuilder.addInterceptorLast(new CompressedHttpResponseInterceptor()); client = hcBuilder.build(); if (LOG.isDebugEnabled()) { LOG.debug("HTTP Client config"); LOG.debug(config.getCrowdServerUrl()); LOG.debug("PROPERTY_THREADPOOL_SIZE:" + cm.getMaxTotal()); LOG.debug("PROPERTY_READ_TIMEOUT:" + reqConfig.getSocketTimeout()); LOG.debug("PROPERTY_CONNECT_TIMEOUT:" + reqConfig.getConnectTimeout()); if (reqConfig.getProxy() != null) { LOG.debug("PROPERTY_PROXY_URI:" + reqConfig.getProxy().toString()); } LOG.debug("Crowd application name:" + config.getApplicationName()); } }
From source file:org.apache.http.impl.execchain.MainClientExec.java
/** * Establishes the target route.//w ww . j a v a 2 s .c o m */ void establishRoute(final AuthState proxyAuthState, final HttpClientConnection managedConn, final HttpRoute route, final HttpRequest request, final HttpClientContext context) throws HttpException, IOException { final RequestConfig config = context.getRequestConfig(); final int timeout = config.getConnectTimeout(); final RouteTracker tracker = new RouteTracker(route); int step; do { final HttpRoute fact = tracker.toRoute(); step = this.routeDirector.nextStep(route, fact); switch (step) { case HttpRouteDirector.CONNECT_TARGET: this.connManager.connect(managedConn, route, timeout > 0 ? timeout : 0, context); tracker.connectTarget(route.isSecure()); break; case HttpRouteDirector.CONNECT_PROXY: this.connManager.connect(managedConn, route, timeout > 0 ? timeout : 0, context); final HttpHost proxy = route.getProxyHost(); tracker.connectProxy(proxy, false); break; case HttpRouteDirector.TUNNEL_TARGET: { final boolean secure = createTunnelToTarget(proxyAuthState, managedConn, route, request, context); this.log.debug("Tunnel to target created."); tracker.tunnelTarget(secure); } break; case HttpRouteDirector.TUNNEL_PROXY: { // The most simple example for this case is a proxy chain // of two proxies, where P1 must be tunnelled to P2. // route: Source -> P1 -> P2 -> Target (3 hops) // fact: Source -> P1 -> Target (2 hops) final int hop = fact.getHopCount() - 1; // the hop to establish final boolean secure = createTunnelToProxy(route, hop, context); this.log.debug("Tunnel to proxy created."); tracker.tunnelProxy(route.getHopTarget(hop), secure); } break; case HttpRouteDirector.LAYER_PROTOCOL: this.connManager.upgrade(managedConn, route, context); tracker.layerProtocol(route.isSecure()); break; case HttpRouteDirector.UNREACHABLE: throw new HttpException( "Unable to establish route: " + "planned = " + route + "; current = " + fact); case HttpRouteDirector.COMPLETE: this.connManager.routeComplete(managedConn, route, context); break; default: throw new IllegalStateException("Unknown step indicator " + step + " from RouteDirector."); } } while (step > HttpRouteDirector.COMPLETE); }
From source file:org.apache.http.impl.execchain.MainClientExec.java
/** * Creates a tunnel to the target server. * The connection must be established to the (last) proxy. * A CONNECT request for tunnelling through the proxy will * be created and sent, the response received and checked. * This method does <i>not</i> update the connection with * information about the tunnel, that is left to the caller. *///from www . j a v a 2s .co m private boolean createTunnelToTarget(final AuthState proxyAuthState, final HttpClientConnection managedConn, final HttpRoute route, final HttpRequest request, final HttpClientContext context) throws HttpException, IOException { final RequestConfig config = context.getRequestConfig(); final int timeout = config.getConnectTimeout(); final HttpHost target = route.getTargetHost(); final HttpHost proxy = route.getProxyHost(); HttpResponse response; final String authority = target.toHostString(); final HttpRequest connect = new BasicHttpRequest("CONNECT", authority, request.getProtocolVersion()); this.requestExecutor.preProcess(connect, this.proxyHttpProcessor, context); for (;;) { if (!managedConn.isOpen()) { this.connManager.connect(managedConn, route, timeout > 0 ? timeout : 0, context); } connect.removeHeaders(AUTH.PROXY_AUTH_RESP); this.authenticator.generateAuthResponse(connect, proxyAuthState, context); response = this.requestExecutor.execute(connect, managedConn, context); final int status = response.getStatusLine().getStatusCode(); if (status < 200) { throw new HttpException("Unexpected response to CONNECT request: " + response.getStatusLine()); } if (config.isAuthenticationEnabled()) { if (this.authenticator.isAuthenticationRequested(proxy, response, this.proxyAuthStrategy, proxyAuthState, context)) { if (this.authenticator.handleAuthChallenge(proxy, response, this.proxyAuthStrategy, proxyAuthState, context)) { // Retry request if (this.reuseStrategy.keepAlive(response, context)) { this.log.debug("Connection kept alive"); // Consume response content final HttpEntity entity = response.getEntity(); EntityUtils.consume(entity); } else { managedConn.close(); } } else { break; } } else { break; } } } final int status = response.getStatusLine().getStatusCode(); if (status > 299) { // Buffer response content final HttpEntity entity = response.getEntity(); if (entity != null) { response.setEntity(new BufferedHttpEntity(entity)); } managedConn.close(); throw new TunnelRefusedException("CONNECT refused by proxy: " + response.getStatusLine(), response); } // How to decide on security of the tunnelled connection? // The socket factory knows only about the segment to the proxy. // Even if that is secure, the hop to the target may be insecure. // Leave it to derived classes, consider insecure by default here. return false; }
From source file:org.apache.http.impl.execchain.MinimalClientExec.java
public CloseableHttpResponse execute(final HttpRoute route, final HttpRequestWrapper request, final HttpClientContext context, final HttpExecutionAware execAware) throws IOException, HttpException { Args.notNull(route, "HTTP route"); Args.notNull(request, "HTTP request"); Args.notNull(context, "HTTP context"); rewriteRequestURI(request, route);/*from w w w . j av a 2 s .com*/ final ConnectionRequest connRequest = connManager.requestConnection(route, null); if (execAware != null) { if (execAware.isAborted()) { connRequest.cancel(); throw new RequestAbortedException("Request aborted"); } else { execAware.setCancellable(connRequest); } } final RequestConfig config = context.getRequestConfig(); final HttpClientConnection managedConn; try { final int timeout = config.getConnectionRequestTimeout(); managedConn = connRequest.get(timeout > 0 ? timeout : 0, TimeUnit.MILLISECONDS); } catch (final InterruptedException interrupted) { Thread.currentThread().interrupt(); throw new RequestAbortedException("Request aborted", interrupted); } catch (final ExecutionException ex) { Throwable cause = ex.getCause(); if (cause == null) { cause = ex; } throw new RequestAbortedException("Request execution failed", cause); } final ConnectionHolder releaseTrigger = new ConnectionHolder(log, connManager, managedConn); try { if (execAware != null) { if (execAware.isAborted()) { releaseTrigger.close(); throw new RequestAbortedException("Request aborted"); } else { execAware.setCancellable(releaseTrigger); } } if (!managedConn.isOpen()) { final int timeout = config.getConnectTimeout(); this.connManager.connect(managedConn, route, timeout > 0 ? timeout : 0, context); this.connManager.routeComplete(managedConn, route, context); } final int timeout = config.getSocketTimeout(); if (timeout >= 0) { managedConn.setSocketTimeout(timeout); } HttpHost target = null; final HttpRequest original = request.getOriginal(); if (original instanceof HttpUriRequest) { final URI uri = ((HttpUriRequest) original).getURI(); if (uri.isAbsolute()) { target = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); } } if (target == null) { target = route.getTargetHost(); } context.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, target); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request); context.setAttribute(HttpCoreContext.HTTP_CONNECTION, managedConn); context.setAttribute(HttpClientContext.HTTP_ROUTE, route); httpProcessor.process(request, context); final HttpResponse response = requestExecutor.execute(request, managedConn, context); httpProcessor.process(response, context); // The connection is in or can be brought to a re-usable state. if (reuseStrategy.keepAlive(response, context)) { // Set the idle duration of this connection final long duration = keepAliveStrategy.getKeepAliveDuration(response, context); releaseTrigger.setValidFor(duration, TimeUnit.MILLISECONDS); releaseTrigger.markReusable(); } else { releaseTrigger.markNonReusable(); } // check for entity, release connection if possible final HttpEntity entity = response.getEntity(); if (entity == null || !entity.isStreaming()) { // connection not needed and (assumed to be) in re-usable state releaseTrigger.releaseConnection(); return Proxies.enhanceResponse(response, null); } else { return Proxies.enhanceResponse(response, releaseTrigger); } } catch (final ConnectionShutdownException ex) { final InterruptedIOException ioex = new InterruptedIOException("Connection has been shut down"); ioex.initCause(ex); throw ioex; } catch (final HttpException ex) { releaseTrigger.abortConnection(); throw ex; } catch (final IOException ex) { releaseTrigger.abortConnection(); throw ex; } catch (final RuntimeException ex) { releaseTrigger.abortConnection(); throw ex; } }
From source file:org.apache.http.impl.nio.client.AbstractClientExchangeHandler.java
final void requestConnection() { final HttpRoute route = this.routeRef.get(); if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + this.id + "] Request connection for " + route); }// w ww .j a v a 2 s . c om discardConnection(); this.validDurationRef.set(null); this.routeTrackerRef.set(null); this.routeEstablished.set(false); final Object userToken = this.localContext.getUserToken(); final RequestConfig config = this.localContext.getRequestConfig(); this.connmgr.requestConnection(route, userToken, config.getConnectTimeout(), config.getConnectionRequestTimeout(), TimeUnit.MILLISECONDS, new FutureCallback<NHttpClientConnection>() { @Override public void completed(final NHttpClientConnection managedConn) { connectionAllocated(managedConn); } @Override public void failed(final Exception ex) { connectionRequestFailed(ex); } @Override public void cancelled() { connectionRequestCancelled(); } }); }
From source file:org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilterTests.java
@Test public void timeoutPropertiesAreApplied() { addEnvironment(this.context, "zuul.host.socket-timeout-millis=11000", "zuul.host.connect-timeout-millis=2100", "zuul.host.connection-request-timeout-millis=2500"); setupContext();/*from w w w. j av a 2 s.co m*/ CloseableHttpClient httpClient = getFilter().newClient(); Assertions.assertThat(httpClient).isInstanceOf(Configurable.class); RequestConfig config = ((Configurable) httpClient).getConfig(); assertEquals(11000, config.getSocketTimeout()); assertEquals(2100, config.getConnectTimeout()); assertEquals(2500, config.getConnectionRequestTimeout()); }