0

Java クライアントを使用して REST サービスを利用しようとすると、java.net.ConnectException: Connection timed out例外が発生します。

Web クライアント (chrome、firefox) を使用している場合、正しい答えを取得できます。

Windows ファイアウォールに Java の例外を追加しましたが、これで問題は解決しません。私の接続は保護されています。

SSLContext sslContext = SSLContext.getInstance("TLS");
        X509TrustManager[] xtmArray = new X509TrustManager[] { new OwnTrustManager() };
        sslContext.init(null, xtmArray, new java.security.SecureRandom());
        if (sslContext != null) {
            HttpsURLConnection.setDefaultSSLSocketFactory(sslContext
                    .getSocketFactory());
        }
        HttpsURLConnection
                .setDefaultHostnameVerifier(new ISAHostnameVerifier());



public class OwnTrustManager implements X509TrustManager{
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}

public void checkServerTrusted(X509Certificate[] chain, String authType) {
}

public X509Certificate[] getAcceptedIssuers() {
    return null;
}
}


public class ISAHostnameVerifier implements HostnameVerifier{
public boolean verify(String hostname, SSLSession session) {
    return true;
}
}

ビジネスロジックは次のとおりです。

URL url = null;
      try {

         url = new URL("https://16.9.1.82/xxxx/v23/rest");
         HttpsURLConnection con = (HttpsURLConnection)url.openConnection();
         con.setRequestMethod("GET");
         con.setRequestProperty("Accept", "application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
         con.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
         con.setRequestProperty("Cookie", "----");
         con.setRequestProperty("Host", "16.9.1.82");
         con.setRequestProperty("Authorization", "Basic U1BQQ19STTFASUJNLkNPTTptYXhhZG1pbg==");
         con.connect();
4

0 に答える 0