1

このコードを使用して Web サーバー (HTTPS であり、ユーザー名/パスワードが必要) に接続する Java プログラムを作成していますが、execute呼び出しに到達するとハングします。

KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream instream = new FileInputStream(new File("D:/jssecacerts"));
try {
    trustStore.load(instream, "certspassword".toCharArray());
} finally {
    try { instream.close(); } catch (Exception ignore) {}
}

SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", 443, socketFactory);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);

HttpGet httpget = new HttpGet("https://server/path/default.aspx");

httpclient.getCredentialsProvider().setCredentials(
    new AuthScope("server", 443),
    new UsernamePasswordCredentials("user", "pass"));

System.out.println("executing request" + httpget.getRequestLine());

HttpResponse response = httpclient.execute(httpget);

これは、問題を特定するために私が試したことです。

  • 行をコメントアウトするsetCredentialsと、ハングせず、サーバーは即座にHTTP/1.1 401 Unauthorized応答を返します
  • 有効なユーザー名/パスワードを提供するかどうかは関係ありません
  • さまざまな方法でタイムアウトを指定しようとしましたが、タイムアウト間隔が過ぎてもハングしたままです
4

0 に答える 0