我正在尝试使用 java.net 的 HttpUrlConnection 在我的 Java 应用程序中对支持 NTLM 身份验证的服务器进行身份验证。
问题是应用程序无法发送 Authenticate 响应。
我已将代理附加到 http 连接,以便通过提琴手路由流量。在提琴手中,我可以看到正在发送协商消息,并收到服务器挑战。但在此之后,应用程序只是停止说它收到了 401,而没有发送 type3 身份验证消息。
有任何想法吗?这是代码 -
Authenticator.setDefault(new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username",
"password".toCharArray());
}
});
URL url = new URL("https://service_url.svc");
// Proxy for fiddler
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("localhost", 8888));
// Create a connection
HttpURLConnection conn = (HttpURLConnection)url.openConnection(proxy);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
InputStream is = conn.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = rd.readLine()) != null)
System.out.println(line);
rd.close();
感谢任何帮助。谢谢。