@Deprecated protected AsyncHttpClient.BoundRequestBuilder getBuilderWithHeaderAndQuery(final String verb, final String url, final Map<String, String> immutableOptions) { final AsyncHttpClient.BoundRequestBuilder builder = prepareBuilder(verb, url); final Map<String, String> options = new HashMap<String, String>(immutableOptions); if (options.get(HttpHeaders.ACCEPT) != null) { builder.addHeader(HttpHeaders.ACCEPT, options.remove(HttpHeaders.ACCEPT)); } if (options.get(HttpHeaders.CONTENT_TYPE) != null) { builder.addHeader(HttpHeaders.CONTENT_TYPE, options.remove(HttpHeaders.CONTENT_TYPE)); } for (final String key : options.keySet()) { if (options.get(key) != null) { builder.addQueryParam(key, options.get(key)); } } if (proxyHost != null && proxyPort != null) { final ProxyServer proxyServer = new ProxyServer(proxyHost, proxyPort); builder.setProxyServer(proxyServer); } return builder; }
<T> ListenableFuture<T> privatePost(final String url, Map<String, String> params, HttpOption option, String charset, AsyncHandler<T> handler) throws IOException { AsyncHttpClient.BoundRequestBuilder builder = getClient().preparePost(url); for (Map.Entry<String, String> entry : params.entrySet()) { StringPart part = new StringPart(entry.getKey(), entry.getValue(), null, Charset.forName(charset)); builder.addBodyPart(part); } if (option != null) { // 设置header for (Map.Entry<String, String> entry : option.getHeaders().entrySet()) { builder.addHeader(entry.getKey(), entry.getValue()); } // 设置代理 if (option.getProxy() != null) { builder.setProxyServer(option.getProxy()); } } Request request = builder.build(); return new GuavaListenableFuture<T>(getClient().executeRequest(request, new AsyncClientHandler<T>(handler))); }
private <T> ListenableFuture<T> privatePost(final String url, HttpOption option, AsyncHandler<T> handler) throws IOException { AsyncHttpClient.BoundRequestBuilder builder = getClient().preparePost(url); if (option != null) { Map<String, String> postFormData = option.getPostFormData(); Map<String, String> headers = option.getHeaders(); String body = option.getPostBodyData(); ProxyServer proxy = option.getProxy(); if (headers != null && !headers.isEmpty()) { for (Map.Entry<String, String> entry : headers.entrySet()) { builder.addHeader(entry.getKey(), entry.getValue()); } } if (postFormData != null && !postFormData.isEmpty()) { for (Map.Entry<String, String> entry : postFormData.entrySet()) { builder.addBodyPart(new StringPart(entry.getKey(), entry.getValue())); } } if (!Strings.isNullOrEmpty(body)) { builder.setBody(body); } if (proxy != null) { builder.setProxyServer(proxy); } } Request request = builder.build(); return new GuavaListenableFuture<T>(getClient().executeRequest(request, new AsyncClientHandler<T>(handler))); }
builder.setProxyServer(proxyServer);
requestBuilder.setProxyServer(proxyServer);
<T> ListenableFuture<T> privateGet(String url, HttpOption option, AsyncHandler<T> handler) throws IOException { AsyncHttpClient.BoundRequestBuilder builder = getClient().prepareGet(url); if (option != null) { // 设置header for (Map.Entry<String, String> entry : option.getHeaders().entrySet()) { builder.addHeader(entry.getKey(), entry.getValue()); } // 设置代理 if (option.getProxy() != null) { builder.setProxyServer(option.getProxy()); } if (option.getRequestTimeoutInMs() != HttpOption.NOTSET) { builder.setRequestTimeout(option.getRequestTimeoutInMs()); } } Request request = builder.build(); return new GuavaListenableFuture<T>(getClient().executeRequest(request, new AsyncClientHandler<T>(handler))); }
public WrappedRequestBuilder setProxyServer(ProxyServer proxyServer) { _delegate.setProxyServer(proxyServer); return this; }
@Test(groups = { "standalone", "default_provider" }) public void testRequestLevelProxy() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { 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 testNonProxyHostIssue202() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { String target = "http://127.0.0.1:" + port1 + "/"; Future<Response> f = client.prepareGet(target).setProxyServer(new ProxyServer("127.0.0.1", port1 - 1).addNonProxyHost("127.0.0.1")).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 testNonProxyHostsSsl() throws IOException, ExecutionException, TimeoutException, InterruptedException { AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()// .setAcceptAnyCertificate(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Response resp = client.prepareGet(getTargetUrl2()).setProxyServer(new ProxyServer("127.0.0.1", port1 - 1).addNonProxyHost("127.0.0.1")).execute().get(3, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getHeader("X-pathInfo"), "/foo/test"); } } }
@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 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); } }
public WrappedRequestBuilder setProxyServer(ProxyServer proxyServer) { _delegate.setProxyServer(proxyServer); return this; }