confBuilder.setProxyServer(proxy);
@Override public final void init(final Map<String, String> properties) { // map properties url = properties.get(PROPERTY_URL); final String basicAuthUser = properties.get(PROPERTY_BASIC_AUTH_USER); final String basicAuthPassword = properties.get(PROPERTY_BASIC_AUTH_PASSWORD); final String proxyHost = properties.get(PROPERTY_PROXY_HOST); final String proxyUser = properties.get(PROPERTY_PROXY_USER); final String proxyPassword = properties.get(PROPERTY_PROXY_PASSWORD); final Integer proxyPort = convertStringToInt(properties.get(PROPERTY_PROXY_PORT), null); final Integer requestTimeoutInMs = convertStringToInt(properties.get(PROPERTY_REQUEST_TIMEOUT), DEFAULT_REQUEST_TIMEOUT); builder = new AsyncHttpClientConfig.Builder(); if (basicAuthUser != null && basicAuthPassword != null) { final Realm realm = new Realm.RealmBuilder().setPrincipal(basicAuthUser).setPassword(basicAuthPassword).setUsePreemptiveAuth(true) .setScheme(AuthScheme.BASIC).build(); builder.setRealm(realm); } // Add Proxy Support - use authentication if user and password properties are set if (proxyHost != null && proxyPort != null) { final ProxyServer proxy; if (proxyUser != null && proxyPassword != null) { proxy = new ProxyServer(proxyHost, proxyPort, proxyUser, proxyPassword); } else { proxy = new ProxyServer(proxyHost, proxyPort); } builder.setProxyServer(proxy); } builder.setRequestTimeoutInMs(requestTimeoutInMs); builder.setIdleConnectionTimeoutInMs(DEFAULT_REQUEST_IDLE_TIMEOUT); }
@Test(groups = { "standalone", "default_provider" }) public void testNonProxyHosts() throws IOException, ExecutionException, TimeoutException, InterruptedException { AsyncHttpClientConfig cfg = new AsyncHttpClientConfig.Builder().setProxyServer(new ProxyServer("127.0.0.1", port1 - 1)).build(); try (AsyncHttpClient client = getAsyncHttpClient(cfg)) { String target = "http://127.0.0.1:1234/"; client.prepareGet(target).setProxyServer(new ProxyServer("127.0.0.1", port1).addNonProxyHost("127.0.0.1")).execute().get(); assertFalse(true); } catch (Throwable e) { assertNotNull(e.getCause()); assertEquals(e.getCause().getClass(), ConnectException.class); } }
result.setProxyServer( proxy );
AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setProxyServer(ps).setAcceptAnyCertificate(true).build(); try (AsyncHttpClient asyncHttpClient = getAsyncHttpClient(config)) { final CountDownLatch latch = new CountDownLatch(1);
@Test(groups = { "standalone", "default_provider", "async" }) public void asyncDoPostProxyTest() throws Throwable { AsyncHttpClientConfig cf = new AsyncHttpClientConfig.Builder().setProxyServer(new ProxyServer("127.0.0.1", port2)).build(); try (AsyncHttpClient client = getAsyncHttpClient(cf)) { FluentCaseInsensitiveStringsMap h = new FluentCaseInsensitiveStringsMap(); h.add("Content-Type", "application/x-www-form-urlencoded"); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 5; i++) { sb.append("param_"); sb.append(i); sb.append("=value_"); sb.append(i); sb.append("&"); } sb.setLength(sb.length() - 1); Response response = client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString()) .execute(new AsyncCompletionHandler<Response>() { @Override public Response onCompleted(Response response) throws Exception { return response; } @Override public void onThrowable(Throwable t) { } }).get(); assertEquals(response.getStatusCode(), 200); assertEquals(response.getHeader("X-Connection"), "keep-alive"); } }
ConfigurationProperties.REQUEST_TIMEOUT ) ); configBuilder.setProxyServer( getProxy( repository, credentialEncoding ) ); configBuilder.setRealm( getRealm( repository, credentialEncoding ) );
ConfigurationProperties.REQUEST_TIMEOUT ) ); configBuilder.setProxyServer( getProxy( repository, credentialEncoding ) ); configBuilder.setRealm( getRealm( repository, credentialEncoding ) );
@Test(groups = { "online", "default_provider" }) public void testConfigProxy() throws IOException, InterruptedException, ExecutionException, TimeoutException { AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()// .setProxyServer(new ProxyServer(ProxyServer.Protocol.HTTPS, "127.0.0.1", port1))// .setAcceptAnyCertificate(true)// .setFollowRedirect(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { RequestBuilder rb = new RequestBuilder("GET").setUrl(getTargetUrl2()); Future<Response> responseFuture = client.executeRequest(rb.build(), new AsyncCompletionHandlerBase() { public void onThrowable(Throwable t) { t.printStackTrace(); log.debug(t.getMessage(), t); } @Override public Response onCompleted(Response response) throws Exception { return response; } }); Response r = responseFuture.get(); assertEquals(r.getStatusCode(), 200); assertEquals(r.getHeader("X-Connection"), "keep-alive"); } }
private void initFromOptions(ClientOptions options) { if(options != ClientOptions.IMPLEMENTATION_DEFAULT) { AsyncHttpClientConfig.Builder config = new AsyncHttpClientConfig.Builder(); config.setUserAgent(options.userAgent); if(options.proxyHost != null) { config.setProxyServer(new ProxyServer(options.proxyHost, options.proxyPort)); } config.setConnectionTimeoutInMs(options.connectionTimeoutMillis); config.setRequestTimeoutInMs(options.requestTimeoutMillis); config.setFollowRedirects(options.followRedirects); config.setMaximumConnectionsPerHost(options.maxConnectionsPerDestination); config.setMaximumConnectionsTotal(options.maxConnectionsTotal); config.setFollowRedirects(RequestOptions.DEFAULT_FOLLOW_REDIRECTS); config.setAllowPoolingConnection(options.getBooleanProperty("allowPoolingConnection", true)); config.setIOThreadMultiplier(options.getIntProperty("ioThreadMultiplier", 2)); config.setIdleConnectionInPoolTimeoutInMs(options.getTimeProperty("idleConnectionInPoolTimeout", 60 * 1000)); config.setIdleConnectionTimeoutInMs(options.getTimeProperty("idleConnectionTimeout", 60 * 1000)); config.setMaxConnectionLifeTimeInMs(options.getTimeProperty("maxConnectionLife", -1)); config.setCompressionEnabled(options.getBooleanProperty("compressionEnabled", false)); config.setRequestCompressionLevel(options.getIntProperty("requestCompressionLevel", 1)); this.httpClient = new AsyncHttpClient(config.build()); } else { this.httpClient = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().build()); } }
protected void doConfigureProxy(AsyncHttpClientConfig.Builder builder, ProxyConfig proxyConfig) { builder.setProxyServer(buildProxy(proxyConfig)); }
protected void doConfigureProxy(AsyncHttpClientConfig.Builder builder, ProxyConfig proxyConfig) { builder.setProxyServer(buildProxy(proxyConfig)); }
@Test(groups = { "standalone", "default_provider" }) public void testBothProxies() throws IOException, ExecutionException, TimeoutException, InterruptedException { AsyncHttpClientConfig cfg = new AsyncHttpClientConfig.Builder().setProxyServer(new ProxyServer("127.0.0.1", port1 - 1)).build(); try (AsyncHttpClient client = getAsyncHttpClient(cfg)) { String target = "http://127.0.0.1:1234/"; Future<Response> f = client.prepareGet(target).setProxyServer(new ProxyServer("127.0.0.1", port1)).execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getHeader("target"), "/"); } }
@Test(groups = { "standalone", "default_provider" }) public void testGlobalProxy() throws IOException, ExecutionException, TimeoutException, InterruptedException { AsyncHttpClientConfig cfg = new AsyncHttpClientConfig.Builder().setProxyServer(new ProxyServer("127.0.0.1", port1)).build(); try (AsyncHttpClient client = getAsyncHttpClient(cfg)) { String target = "http://127.0.0.1:1234/"; Future<Response> f = client.prepareGet(target).execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getHeader("target"), "/"); } }
/** * Set HTTP proxy configuration */ public Client setProxy(String host, int port) { this.builder.setProxyServer(new ProxyServer(host, port)); return this; }
private DefaultAhcConfig createAhcConfig(){ DefaultAhcConfig ahcConfig = new DefaultAhcConfig(); ahcConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); ahcConfig.getClasses().add(JacksonJsonProvider.class); ahcConfig.getAsyncHttpClientConfigBuilder().setAllowPoolingConnection(false); if (realm != null) { ahcConfig.getAsyncHttpClientConfigBuilder().setRealm(realm); } if (proxyServer != null) { ahcConfig.getAsyncHttpClientConfigBuilder().setProxyServer(proxyServer); } return ahcConfig; }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }