use*_*949 30 java apache-commons-httpclient
我发现设置http.proxyHost并且http.proxyPort对httpClient没用.如何通过环境变量或VM参数或类似的东西强制httpClient使用代理而不更改代码?
小智 21
在https://issues.apache.org/jira/browse/HTTPCLIENT-1128
SystemDefaultHttpClient已添加到ver.4.2
wan*_*ngf 15
HTTP客户端(对于我的案例,v 4.5.1)可以使用这样的系统代理:
HttpClient httpClient = HttpClientBuilder.create().useSystemProperties().build();
//or
HttpClient httpClient = HttpClients.createSystem();
Run Code Online (Sandbox Code Playgroud)
您可以HttpClient使用client.getHostConfiguration().setProxy(host, port)方法强制代理.我通常创建包装类HttpClient,在初始化这个类时,我从任何来源设置代理(env.variable ...).
我使用java.net.ProxySelector.setDefault(new MyProxySelector())的情况是你无法直接设置代理HttpClient.您必须实现自己的ProxySelector类,并且方法select基于请求的URI进行代理选择.您可以使用url-> proxy映射将特定URI地址配置为所需的代理,或者为全局请求的URI返回一个代理.
正如我在HttpClient源代码中看到的,没有其他方法如何配置仅代理setProxy方法.我正在使用commons-httpclient-3.1.
Sur*_*ran -17
这有帮助吗?
System.setProperty("https.proxyHost", proxy_host);
System.setProperty("http.proxyHost", proxy_host);
System.setProperty("https.proxyPort", proxy_port);
System.setProperty("http.proxyPort", proxy_port);
Run Code Online (Sandbox Code Playgroud)
或者当然您可以通过命令行传递相同的属性
| 归档时间: |
|
| 查看次数: |
29845 次 |
| 最近记录: |