2016-04-27 9 views
10

मुझे इस त्रुटि को प्राप्त करने में समस्या है जब मैं अपने ऐप पर सिंक कर रहा हूं। मुख्य समस्या यह है कि एक ही कोड एंड्रॉयड 6.0.1 डिवाइस पर काम करता है, लेकिन 4.4.2 डिवाइस पर, मैं इस त्रुटि हो रही है:javax.net.ssl.SSLException: 5.2.2 डिवाइस (6.0.1 पर काम करता है) पर सहकर्मी द्वारा बंद कनेक्शन

javax.net.ssl.SSLException: Connection closed by peer 
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:406) 
at okhttp3.internal.io.RealConnection.connectTls(RealConnection.java:188) 
at okhttp3.internal.io.RealConnection.connectSocket(RealConnection.java:145) 
at okhttp3.internal.io.RealConnection.connect(RealConnection.java:108) 
at okhttp3.internal.http.StreamAllocation.findConnection(StreamAllocation.java:188) 
at okhttp3.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:127) 
at okhttp3.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) 
at okhttp3.internal.http.HttpEngine.connect(HttpEngine.java:289) 
at okhttp3.internal.http.HttpEngine.sendRequest(HttpEngine.java:241) 
at okhttp3.RealCall.getResponse(RealCall.java:240) 
at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198) 
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:203) 
at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:187) 
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160) 
at okhttp3.RealCall.access$100(RealCall.java:30) 
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:127) 
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:33) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 

जहाँ मैं सर्वर से डेटा का अनुरोध करने में असमर्थ हूँ।

यदि आपको अधिक डेटा चाहिए, तो पूछने के लिए स्वतंत्र महसूस करें। धन्यवाद।

+1

[यहां] प्रदान की जवाब पर एक नज़र (http://stackoverflow.com/a/ लें:

केवल बात यह है कि मैं यहाँ सही करने के लिए की जरूरत TLS 1.2 प्रोटोकॉल सीधे मजबूर करने के लिए, इस तरह है 33567745/3202633) रॉबर्ट – am110787

+0

द्वारा धन्यवाद, जिसने मुझे समाधान के लिए निर्देशित किया! – robigroza

उत्तर

4

यहां कुंजी this लिंक पर आधारित टीएलएस 1.2 प्रोटोकॉल को मजबूर करना है।

private class NoSSLv3SSLSocket extends DelegateSSLSocket { 

    private NoSSLv3SSLSocket(SSLSocket delegate) { 
     super(delegate); 
    } 

    @Override 
    public void setEnabledProtocols(String[] protocols) { 
     super.setEnabledProtocols(new String[]{"TLSv1.2"}); // force to use only TLSv1.2 here 
    } 
} 
+0

@DavidCheung अपना खुद का जवाब पोस्ट करने के लिए स्वतंत्र महसूस करें। – Michael

संबंधित मुद्दे

 संबंधित मुद्दे