Java を使用して、表示を XML 形式で返す HTTPS サイトにアクセスしています。URL 自体でログイン資格情報を渡します。コード スニペットは次のとおりです。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
requestURL = "https://Administrator:Password@localhost:8443/abcd";
try {
InputStream is = null;
URL url = new URL(requestURL);
InputStream xmlInputStream =new URL(requestURL).openConnection().getInputStream();
byte[] testByteArr = new byte[xmlInputStream.available()];
xmlInputStream.read(testByteArr);
System.out.println(new String(testByteArr));
Document doc = db.parse(xmlInputStream);
System.out.println("DOC="+doc);
} catch (MalformedURLException e) {
}
プログラムで、署名済み/未署名の証明書を検証しないトラスト マネージャーを作成しています。しかし、上記のプログラムを実行すると、サーバーが HTTP 応答コードを返しました: 401 for URL: https://Administrator:Password@localhost:8443/abcdというエラーが表示されます。
ブラウザで同じ URL を使用すると、xml が正しく表示されます。Javaプログラム内でこれを機能させる方法を教えてください。