2017-01-24 135 views
0

我使用下面的代码实例化一个Apache HTTP组件的HttpClient的条件设定:Apache的HTTP客户端和代理

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

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

回答

1

如何:

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

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

CloseableHttpClient httpClient = builder.build(); 
+0

工程。谢谢! –