1

について問題が発生していsslます。httpsリンクに接続してそこから取得jsonします。それはうまく機能しますが、接続して取得できない場合がありますjson。その結果、アプリがクラッシュしました。接続を開いて https から json を取得する方法が必要だと思います。

LG Optimus G でテストしましたAndroid 4.1.2

これは私のエラーログです:

10-24 04:10:59.149: W/System.err(9985): javax.net.ssl.SSLException: Connection closed by peer
10-24 04:10:59.149: W/System.err(9985):     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
10-24 04:10:59.169: W/System.err(9985):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:395)
10-24 04:10:59.169: W/System.err(9985):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocketImpl.java:647)
10-24 04:10:59.189: W/System.err(9985):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:618)
10-24 04:10:59.209: I/MiuiMagnifierController(9985): MagnifierController is created
10-24 04:10:59.219: W/System.err(9985):     at org.apache.http.impl.io.SocketInputBuffer.<init>(SocketInputBuffer.java:70)
10-24 04:10:59.229: W/System.err(9985):     at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)
10-24 04:10:59.229: W/System.err(9985):     at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)
10-24 04:10:59.229: W/System.err(9985):     at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)
10-24 04:10:59.229: W/System.err(9985):     at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)
10-24 04:10:59.229: W/System.err(9985):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:172)
10-24 04:10:59.239: W/System.err(9985):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)

これは私が使用した私の機能です:

public static String readJsonFromUrl(String url) throws Exception {

    String result = "";
    HttpPost httpPost = null;
    DefaultHttpClient httpClient = null;

    httpClient = httpClient();
    httpPost = new HttpPost(url);

    HttpResponse httpResponseGet = httpClient.execute(httpPost);

    HttpEntity resEntityGet = httpResponseGet.getEntity();

    result = EntityUtils.toString(resEntityGet);

    if (result.contains("\n")) {
        result = result.replace("\n", "");
    }
    return result;
}

=> 次の行でクラッシュします:HttpResponse httpResponseGet = httpClient.execute(httpPost);

この問題を解決できる解決策を教えてください。

4

0 に答える 0