绕过DNS查找并将URL提交给代理

时间:2014-01-05 15:53:36

标签: java proxy dns apache-httpclient-4.x apache-commons-httpclient

我有使用Apache HttpComponents发出Web请求的Java应用程序。 我已将应用程序配置为使用JVM属性

来使用代理服务器

java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3132

目前,我的Java应用程序客户端进行DNS查找,它将失败。 我希望代理执行DNS解析,就像Web浏览器在自动代理配置模式下(使用.pac文件)一样。

2 个答案:

答案 0 :(得分:2)

只是为了记录这个如何让HttpClient获取系统代理设置

CloseableHttpClient client = HttpClients.custom()
    .setRoutePlanner(
         new SystemDefaultRoutePlanner(ProxySelector.getDefault()))
    .build();

或者如果你想根据系统属性完全配置HttpClient

CloseableHttpClient client = HttpClients.createSystem();

答案 1 :(得分:1)

试试看这里: http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientExecuteProxy.java

好像你需要使用setProxy()而不是全局属性来指定代理。