【问题标题】:How to set global http proxy settings for apache HttpClient如何为 apache HttpClient 设置全局 http 代理设置
【发布时间】:2017-01-23 16:04:23
【问题描述】:

在 Apache Commons 4.3 及更高版本中,您需要在 HttpRequest 级别注入您的 HTTP 代理设置 - 但不是全局,在 HttpClient 本身中:

RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
HttpGet httpget = new HttpGet("http://url");
httpget.setConfig(config);
...

httpclient.execute(target, httpget);

问题在于,在一些更高级别的库中,配置是通过传递自定义的HttpClient 实例来进行的。 但这并不能让您访问 API 代码中内置的 HttpRequest

例如,在 Jolokia(一个 JMX REST 桥)中,您可以这样创建客户端:

J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia", httpClient);

在这种情况下有没有办法指定 HTTP 代理? http.proxyHost 系统属性似乎被忽略了,我想避免在 HttpClientHttpRequest 周围创建一整层包装类以在创建请求期间注入设置。

【问题讨论】:

    标签: java apache-httpclient-4.x jolokia


    【解决方案1】:

    您可以使用 HttpClientBuilder。它将拉入 http.proxyHost、http.proxyPort、http.nonProxyHosts 的系统属性。

    HttpClientBuilder.create().useSystemProperties().build();
    

    http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/HttpClientBuilder.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 2014-12-18
      • 2013-09-06
      • 1970-01-01
      • 2017-07-01
      • 2012-04-12
      • 1970-01-01
      相关资源
      最近更新 更多