【发布时间】:2012-07-22 18:53:01
【问题描述】:
我使用需要身份验证的 squid HTTP 代理,并希望向外部服务器发出 API 请求。但是,当我这样做时,我收到以下错误:
原因:java.io.IOException:无法通过代理隧道。代理返回“HTTP/1.0 407 Proxy Authentication Required”
我尝试通过转到控制面板 > Java > 网络设置来设置代理配置,但无济于事。 如何解决?
【问题讨论】:
我使用需要身份验证的 squid HTTP 代理,并希望向外部服务器发出 API 请求。但是,当我这样做时,我收到以下错误:
原因:java.io.IOException:无法通过代理隧道。代理返回“HTTP/1.0 407 Proxy Authentication Required”
我尝试通过转到控制面板 > Java > 网络设置来设置代理配置,但无济于事。 如何解决?
【问题讨论】:
从http://www.it.iitb.ac.in/~roshan/articles/javahttpproxy.html复制:
Tomcat 设置:catalina.properties
将这些属性附加到 Tomcat 中的 catalina.properties 文件:${CATALINA_OME}/conf/catalina.properties 文件:
http.proxyHost=yourProxyURL http.proxyPort=你的代理端口 http.proxyUser=你的用户名 http.proxyPassword=你的密码 Tomcat 设置:catalina.bat
在 ${CATALINA_HOME}/bin/catalina.bat(对于 Windows)或 ${CATALINA_HOME}/bin/catalina.bat(对于 *nix)中添加上面定义的所有参数: JAVA_OPTS="-Dhttp.proxyHost=yourProxyURL ..." (每个选项用空格分隔。)
【讨论】:
您应该在 java 中设置代理设置。
System.getProperties().put("http.proxyHost", "someProxyURL");
System.getProperties().put("http.proxyPort", "someProxyPort");
System.getProperties().put("http.proxyUser", "someUserName");
System.getProperties().put("http.proxyPassword", "somePassword");
【讨论】: