当前位置: 首页 > 知识库问答 >
问题:

代理设置HttpClient 4不工作

郭盛
2023-03-14

我正在使用ApacheHttpClient库连接到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身份验证。我不想传递用户名和密码。

共有2个答案

皮嘉德
2023-03-14

为了拾取系统属性,可以使用SystemDefaultHttpClient而不是DefaultHttpClient。

从HttpClient 4.3开始,这个类已被弃用,转而支持HttpClientBuilder:

HttpClient hc = new HttpClientBuilder().useSystemProperties().build();
白智
2023-03-14

我已经升级到httpclient 4.2,这个版本有现成的NTML支持。只需要在代码中添加以下行

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

关于进一步阅读Httpclent认证方案u可以参考http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d5e947

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

 类似资料:
  • 我在conf/settings.xml中将maven代理设置设置为 但是当我运行maven build时,我得到了以下错误。有人能帮忙吗 详细日志

  • 我有一个在AWS上工作的pom.xml,但在代理工作的后面它没有。我已经尝试了这篇文章中的所有内容Maven代理设置都不起作用,但都不起作用。 以下是使用mvn帮助时的错误:有效设置 以下是my settings.xml的相关部分 主机等的设置来自适用于浏览器的pac文件。有什么想法吗? 我也试着添加这个 到我的pom。xml并将jar添加到我的maven install lib目录中,但得到了这

  • 我有一个来自3的Vue项目。十、 我在

  • 我正在使用Vue CLI 3.0。0(rc.10)和am并排运行两个服务器(后端服务器和WDS)。 我跟踪了devServer。Vue CLI文档中的代理说明,用于将代理选项添加到我的。我还按照http代理中间件库的说明补充了以下选项: 我的理解是,选项需要动态地将请求上的头更改为“http://localhost:4000“。但是,来自我的应用程序的请求仍从发送http://localhost:

  • 我在digital ocean上创建了一个新实例,并安装了laravel(通过克隆我所从事的git回购)。然后我为nginx配置了默认配置,但该站点甚至无法远程访问。 brwoser中的答案是:“SERVERIP当前无法处理此请求。” 我得到的错误就是这个错误。日志 PHP消息:PHP致命错误:require():无法打开required'/var/www/mfserver/bootstrap//

  • 问题内容: 我已经制作了一个android应用https://play.google.com/store/apps/details?id=com.confesco.maggi ,它可以将Firebase用作数据库,在使用3G网络时效果很好。在我们学院的代理下,它没有连接到数据库。有什么办法可以解决这个问题。谢谢。 问题答案: 很抱歉,目前尚无通过代理使用Android客户端的解决方法。我已将其放在