java - HttpClient 4 的代理设置不起作用

标签 java proxy httpclient proxy-authentication http-status-code-407

我正在使用 Apache HttpClient 库连接到 url。我正在做的网络有一个安全代理。当我使用 java.net 包连接到 url 时,我只需添加

System.setProperty("http.proxyHost", proxy);
System.setProperty("http.proxyPort", proxyPort); 

不需要传递代理用户 ID 和密码,但是当我尝试通过 httpclient 连接时,我收到 407 代理身份验证错误。我的代码是:

HttpHost proxy = new HttpHost("xyz.abc.com",8080,"http");
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);

代理正在使用 NTML 身份验证。我不想传递用户 ID 和密码。

最佳答案

我已升级到httpclient 4.2,该版本具有开箱即用的 NTML 支持。只需要在代码中添加以下几行即可

HttpClient httpclient = new DefaultHttpClient();
NTCredentials creds = new NTCredentials("user", "pwd", "myworkstation", "microsoft.com");
httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, creds);

要进一步阅读Httpclent身份验证方案,您可以引用http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d5e947

但我的问题仍然悬而未决,为什么 HttpClent 没有像简单的 java 程序那样选择系统代理。

关于java - HttpClient 4 的代理设置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959708/

相关文章:

java - 当 dateformat 解析和格式化方法不对称时?

android - 类型错误 :Request path contains unescaped characters - npm & cordova

android - HttpClient:服务器宕机时会抛出哪个异常

java - Apache Http 客户端 SSL 证书错误

java - 在 SQL 自省(introspection)中使用 Liquibase 生成的 Hibernate 类

java - 如何进行 Hibernate 嵌套选择?

python - 当出现[Errno 111]连接被拒绝时如何使用Python代理服务器

java - Hibernate 代理序列化并在客户端接收

C# 将 Accept header 添加到 HttpClient

java - Hibernate JSR303 验证和错误生成的 propertyPath