2016-12-22 28 views
0

私は単純なコードを持っていますが、例外が来ているのはなぜですか? マイコード:SSLHandshakeException:ピアによって接続が閉じられました

Document document= Jsoup.connect("https://kolkatatrafficpolice.net/").get(); 

スタックトレース:

javax.net.ssl.SSLHandshakeException: Connection closed by peer 
W/System.err:  at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
W/System.err:  at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357) 
W/System.err:  at com.android.okhttp.Connection.connectTls(Connection.java:235) 
W/System.err:  at com.android.okhttp.Connection.connectSocket(Connection.java:199) 
W/System.err:  at com.android.okhttp.Connection.connect(Connection.java:172) 
W/System.err:  at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367) 
W/System.err:  at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130) 
W/System.err:  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 
W/System.err:  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:247) 
W/System.err:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) 
W/System.err:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126) 
W/System.err:  at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89) 
W/System.err:  at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java) 
W/System.err:  at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:571) 
W/System.err:  at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:548) 
W/System.err:  at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:235) 
W/System.err:  at org.jsoup.helper.HttpConnection.get(HttpConnection.java:224) 
W/System.err:  at com.pritesh.trafficviolation.GetHtml.doInBackground(MainActivity.java:29) 

答えて

0

サーバーが認識されていない証明機関を使用していること。

これがあなたのサーバーであり、これを意図的に行っている場合(自己署名証明書など)、自己署名証明書を使用するようにJSoup/OkHttpを設定する必要があります。

それ以外の場合は、サーバーに問題があります。

+0

私のサーバーではない、私はちょうど1行のコードしかありません。どうすればこの問題を解決できますか? – Pritesh

+0

@Pritesh:認識されたルート認証局を使用する別のサーバーに切り替えます。または、使用しているルート証明機関が何であるかを調べるツールがあるかどうかを確認し、[ネットワークセキュリティ設定](https://developer.android.com/training/articles/security-config)を使用してください。 .html)、自分の[backport](https://github.com/commonsguy/cwac-netsecurity)、または自分のカスタム 'TrustManager'を使って、JSoup/OkHttpにそのルート証明書を授けるように教えようとします。 – CommonsWare

関連する問題