Http post 请求取消 NTLM 身份验证 (java)

Http post requests unsing NTLM Authentication (java)

我尝试在 Java 中使用 NTLM 身份验证发送 HttpRest 调用。我尝试使用 org.apache.http 库。使用 HttpClient 发送带有匿名身份验证的 Post 请求不是什么大问题。 但是我在 Windows 身份验证方面遇到了一些麻烦。我什至尝试将 CredentialProvider 与我自己的 Windows 凭据一起使用(作为妥协,我也不喜欢那样)但我没有成功。

是否有使用 NTLM 身份验证从 Java 代码发送 post 请求的简单方法?

是否有另一个库更符合我的需要?

我仍然不知道为什么来自 https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html 的关于 NTLM 身份验证的独库对我不起作用。 我终于解决了我的问题,类似于 http://www.baeldung.com/httpclient-post-http-request

中描述的基本身份验证文档

现在看起来像这样:

...
CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(AuthScope.ANY,
                new NTCredentials("username", "passwd", hostname, "domain.at"));


HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(credsProvider).build();

HttpPost post = new HttpPost("http://www.example.com"));

StringEntity input = new StringEntity(bodyAsString, HTTP.UTF_8);
input.setContentType("application/json");
input.setContentEncoding("UTF-8");
post.setEntity(input);

post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json");


HttpResponse response = client.execute(post);
...