【发布时间】:2012-12-19 19:28:54
【问题描述】:
我正在使用 Apache HttpClient 库连接到 url。我正在做的网络有一个安全代理。当我使用 java.net 包连接到 url 时,我只需要添加
System.setProperty("http.proxyHost", proxy);
System.setProperty("http.proxyPort", proxyPort);
不需要传递代理用户名和密码,但是当我尝试通过 httpclient 连接时,我收到 407 代理身份验证错误。我的代码是:
HttpHost proxy = new HttpHost("xyz.abc.com",8080,"http");
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
代理正在使用 NTML 身份验证。我不想传递用户名和密码。
【问题讨论】:
-
我找到的最接近的答案是在 stackoverflow 上:stackoverflow.com/questions/6962047/… 我只是认为您的 Windows 系统的 NTLM 凭据无法从您的 java 层访问,然后您需要重新对代理进行身份验证。我可能错了。
-
首先,我认为 HttpClient 中没有开箱即用的 NTML 支持,其次,凭证更改非常频繁,所以我不能以这种方式使用。如果 java.net 包 URLConnect 可用,则通过 java 层访问我的 Windows 系统的凭据,因此它也可用于 httpclient 库。
标签: java proxy httpclient proxy-authentication http-status-code-407