公司代理HTTP客户端java下的基本身份验证

公司代理HTTP客户端java下的基本身份验证,java,http,authentication,proxy,basic-authentication,Java,Http,Authentication,Proxy,Basic Authentication,因此,我在使用NTLM身份验证的公司代理下工作。身份验证被正确检测,我可以通过代理访问需要访问的不同API 当我尝试访问需要基本身份验证(GET-request)的API端点时,就会出现问题。每当我试图通过我的代码点击它时,我会得到一个401未经授权的密码,我可以在标题中看到我得到的“WWW-Authenticate:Basic-realm=”realm 我尝试过各种不同的方法,但最终的结果总是一样的 我尝试直接在URI中设置用户名和密码: HttpGet request = new HttpG

因此,我在使用NTLM身份验证的公司代理下工作。身份验证被正确检测,我可以通过代理访问需要访问的不同API

当我尝试访问需要基本身份验证(GET-request)的API端点时,就会出现问题。每当我试图通过我的代码点击它时,我会得到一个401未经授权的密码,我可以在标题中看到我得到的“WWW-Authenticate:Basic-realm=”realm

我尝试过各种不同的方法,但最终的结果总是一样的

我尝试直接在URI中设置用户名和密码:

HttpGet request = new HttpGet(https://username:password@APIHost.com/end/point)
CredentialsProvider provider = new BasicCredentialsProvider();
provider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
request.addHeader("Authorization", "Basic .........................");
我已尝试使用基本凭据提供程序:

HttpGet request = new HttpGet(https://username:password@APIHost.com/end/point)
CredentialsProvider provider = new BasicCredentialsProvider();
provider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
request.addHeader("Authorization", "Basic .........................");
我已尝试在请求中手动添加Base64授权标头:

HttpGet request = new HttpGet(https://username:password@APIHost.com/end/point)
CredentialsProvider provider = new BasicCredentialsProvider();
provider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
request.addHeader("Authorization", "Basic .........................");
另外,请注意,我可以使用PostMan甚至web浏览器通过代理访问此端点

编辑

我注意到,如果我连续运行两次HttpRequest(使用相同的SessionID等),第一个请求将失败401,但第二个请求实际上将成功。知道为什么会发生这种情况吗?我想可能代理没有转发基本的身份验证

我尝试了更多的事情,但在这一点上都是徒劳的


任何帮助都将不胜感激!:)

您可以从下面的链接尝试设置代理,如下面的示例所示:-

}
}

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。-更新了答案。如果适用,请删除否决票。嗨,感谢您的回复,不幸的是,尝试此链接后仍然无效我在公司网络内部无法工作。(我在外部网络上也尝试了同样的方法,但没有代理本身,结果成功了)。我想知道代理是否没有将基本授权转发到指定的端点…我在最初的问题中添加了一个编辑…如上所述,似乎问题可能是代理没有转发基本授权。在我的情况下,如果连续两次启动请求,第二个请求实际上是成功的。有没有关于为什么会发生这种情况的建议或者如何解决这个问题?我想知道饼干是否有帮助