-1

HTTPS から Json 応答を取得し、例外を取得しています

javax.net.ssl.SSLException: Not trusted server certificate

以下は私のコードで、HttpGetまたはHttpPostで試しても、行で例外が発生します

HttpResponse httpResponse = httpClient.execute(request);

これらは、URL からデータを取得するための以下のコードです。

DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost request = new HttpPost(urlString);
        HttpResponse httpResponse = httpClient.execute(request);

この問題について答えを得ることを望んでいます。ありがとう。

4

2 に答える 2

0

このエラーは、サーバー証明書の有効性を確立できないことを意味します。これには、信頼されたルート証明書が利用できないなど、いくつかの理由が考えられます。

ブラウザからページに接続できますか?

于 2013-01-03T16:51:27.670 に答える
0

学校向けのアプリを開発しているときに、同様の問題が発生しました。秘訣は、証明書の検証をオーバーライドする 2 つのクラスを作成することです。t thisHostnameVerifierのように、呼び出されるたびに true を拡張して返します。もう一方は、このようにオーバーライドします。verify()class extends X509TrustManagergetAcceptedIssuers()

次に、このコードを使用してすべての証明書を受け入れるように HttpsURLConnection を設定できます。

 HttpsURLConnection.setDefaultHostnameVerifier(new AllVerifier());
 try
  {
   SSLContext sslContext = SSLContext.getInstance("TLS");
   sslContext.init(null, new TrustManager[] { new AllTrustManager() }, null);
   HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
     } catch (KeyManagementException e) {
       e.printStackTrace();
     } catch (NoSuchAlgorithmException e) {
       e.printStackTrace();
   }

これでうまくいくはずです。このコードを run() メソッドでどのように使用したかを確認できます。

于 2013-01-03T16:54:35.407 に答える