0

Java プログラムを使用して保護された接続 URL (https://example.com) に接続して、サイトの可用性を確認しようとしています。通常、プロキシ設定を無効にして、ブラウザーでhttps://example.comに接続します。また、信頼されたルート証明書に証明書をインストールしました。これらの証明書を Java キーストアに正常に追加しました。

  import java.net.URL;
    import java.net.URLConnection;
    import java.security.Security.*;
    import com.sun.net.ssl.*;
    import com.sun.*; 

    import javax.net.ssl.HttpsURLConnection;
    import java.security.cert.Certificate;
    import java.io.*;
    import javax.net.ssl.SSLPeerUnverifiedException;
    import org.omg.CORBA_2_3.portable.InputStream;

    public class TestConn {
    public static void main(String args [])
    {
        try{
                 URL hp = new URL("https://example.com");
                HttpsURLConnection hpCon = (HttpsURLConnection)hp.openConnection();

        boolean isProxy = hpCon.usingProxy();
        System.out.println("is using proxy " + isProxy);
        InputStream obj = (InputStream) hpCon.getInputStream();
        while(obj.read()!=-1){
            System.out.println(obj.read_char());

        }
                System.out.println("content >> " + obj.toString());
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }
    }

次のエラーが発生しました。

java.net.ProtocolException: Server redirected too many  times (20)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at TestConn.main(TestConn.java:28)

この例外に関して誰か助けてもらえますか?

4

1 に答える 1

0

サイトの可用性を確認したい場合は、 を使用する必要がありますhpCon.getResponseCode();。応答コード200は、サイトが利用可能であることを意味します。率直に言って、あなたのさらなる目的はわかりません。これは変更されたコードであり、確かに出力コンテンツを取得しています。

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class Test {
public static void main(String[] args) {

    try {
        URL hp = new URL("https://godaddy.com");
        HttpsURLConnection hpCon = (HttpsURLConnection) hp.openConnection();

        boolean isProxy = hpCon.usingProxy();
        System.out.println("is using proxy " + isProxy);
        InputStream obj = hpCon.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(obj));

        String s;
        while ((s = br.readLine()) != null) {
            System.out.println("content >>" + s);
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
}
于 2013-01-18T04:37:10.083 に答える