java - Apache HTTP Client 和代理的条件设置

标签 java apache-httpclient-4.x

我使用以下代码实例化 Apache HTTP 组件 HttpClient:

CloseableHttpClient httpClient = HttpClients.custom()
        .setProxy(new HttpHost(proxyServerAddress, proxyServerPort))
        .disableConnectionState()
        .disableCookieManagement()
        .build();

但我只想在属性(例如 useProxy)设置为 true 时设置代理。我可以根据属性值使用 if-then-else 对 block ,但我想知道是否有更好的方法来实现这一点?我的目标是使用配置文件属性或通过 JAVA_OPTS 来外部化是否使用代理的控制。

最佳答案

怎么样:

HttpClientBuilder builder = HttpClients.custom()
        .disableConnectionState()
        .disableCookieManagement();

if( useProxy )
    builder = builder.setProxy(new HttpHost(proxyServerAddress, proxyServerPort));

CloseableHttpClient httpClient = builder.build();

关于java - Apache HTTP Client 和代理的条件设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41818016/

相关文章:

Java - 停止具有共享对象的线程

java - TestNG 自定义结果

java - HttpAsyncClient 4 如何工作?

java - Apache HttpComponent 客户端将 cookie 保存到文件中并将其用于将来的请求(使用 CookieStore)

java - eclipse - 仅在特定类和该类的所有子类中查找引用

java - 如何在 Thymeleaf 中使用 Dates.Format 和区域设置

java - 如何使用 apache httpClient 设置基本身份验证

java - 如何处理 httpclient 4.3+ 中的超时?

java - 从 JAR 运行 Main.class,在应用程序框架中显示结果

java - Raspberry Pi 上的 HTTPS 太慢了。我该怎么办?我应该选择哪种密码?