相关疑难解决方法(0)

javax.net.ssl.SSLException:读取错误:ssl = 0x9524b800:系统调用期间的I/O错误,同级连接重置

在过去的几周里,我们的客户开始看到100个这样的"SSLException错误 - 连接重置连接",我无法弄清楚为什么

  1. 我们在okhttp上使用Retrofit,没有特殊配置

    public class OkHttpClientProvider implements IOkHttpClientProvider {
    
        OkHttpClient okHttpClient;
    
        public OkHttpClientProvider() {
            this.okHttpClient = createClient();
        }
    
        public OkHttpClient getOkHttpClient() {
            return this.okHttpClient;
        }
    
        private OkHttpClient createClient() {
            return new OkHttpClient();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

上述客户提供商是单身人士.RestAdapter是使用这个注入的客户端构建的(我们使用匕首) -

RestAdapter.Builder restAdapterBuilder = new RestAdapter.Builder()
                                        .setConverter(converter)
                                        .setEndpoint(networkRequestDetails.getServerUrl())
                                        .setClient(new OkClient(okHttpClientProvider.getOkHttpClient()))
                                        .setErrorHandler(new NetworkSynchronousErrorHandler(eventBus))
                                        );
Run Code Online (Sandbox Code Playgroud)

基于堆栈溢出解决方案,我发现了 -

  1. 服务器上的保持活动持续时间为180秒,OkHttp的默认值为300秒

  2. 服务器在其标头中返回"Connection:close",但客户端请求发送"Connection:keepAlive"

  3. 服务器支持TLS 1.0/1.1/1.2并使用Open SSL

  4. 我们的服务器最近已转移到另一个托管服务提供商的另一个地理位置,因此我不知道这些是否是DNS故障

  5. 我们尝试调整keepAlive之类的东西,在服务器上重新配置OpenSSL,但由于某种原因,Android客户端不断收到此错误

  6. 当您尝试使用应用程序发布内容或拉动刷新时,它会立即发生,并且不会出现任何延迟(在发生此异常之前,它甚至不会进入网络或延迟,这意味着连接已经断开).但尝试多次以某种方式"修复它",我们取得了成功.它会在以后再次发生

  7. 我们已经在服务器上使我们的DNS条目无效,看看这是否是由它引起的,但是没有帮助

  8. 它主要发生在LTE上,但我也在Wifi上看过它

我不想禁用keep alive,因为大多数现代客户都不这样做.此外,我们正在使用OkHttp 2.4,这是后冰淇淋三明治设备的一个问题,所以我希望它应该照顾这些潜在的网络问题.iOS客户端也获得了这些例外但接近100倍(iOS客户端使用AFNetworking 2.0).我正在努力寻找新的东西,在这一点上尝试,任何帮助/想法?

更新 - 通过okhttp添加完整堆栈跟踪

      retrofit.RetrofitError: Read error: ssl=0x9dd07200: I/O error during system call, Connection reset by …
Run Code Online (Sandbox Code Playgroud)

ssl android http retrofit okhttp

53
推荐指数
3
解决办法
7万
查看次数

javax.net.ssl.SSLException:SSL握手中止在调用webservice Android时由对等方重置连接

我打电话给https webservice,之前它的工作正常,但现在当我试图调用它时,它会给我以下错误.

记录错误:

12-23 06:28:11.969: W/System.err(3014): javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x1cc160: I/O error during system call, Connection reset by peer
12-23 06:28:11.979: W/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocketImpl.java:750)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:692)
12-23 06:28:11.979: W/System.err(3014):     at crittercism.android.aa.getInputStream(Unknown Source)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.http.impl.io.SocketInputBuffer.<init>(SocketInputBuffer.java:93)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)
12-23 06:28:11.979: W/System.err(3014):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:171)
12-23 …
Run Code Online (Sandbox Code Playgroud)

java ssl https android web-services

18
推荐指数
2
解决办法
7万
查看次数

Android HTTPS异常连接由同行重置

我正在开发一个从Web服务器下载数据的应用程序.它似乎在开始时没有任何问题地下载数据,但是几天前我开始收到这种例外:javax.net.ssl.SSLException: Read error: ssl=0x7a6588: I/O error during system call, Connection reset by peer我不确定是什么原因引起的问题,我该如何解决这个问题.以下是整个LogCat信息:

12-12 11:43:27.950: W/System.err(22010): javax.net.ssl.SSLException: Read error: ssl=0x7a6588: I/O error during system call, Connection reset by peer
12-12 11:43:27.960: W/System.err(22010):    at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method)
12-12 11:43:27.960: W/System.err(22010):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:788)
12-12 11:43:27.960: W/System.err(22010):    at org.apache.harmony.luni.internal.net.www.protocol.http.ChunkedInputStream.read(ChunkedInputStream.java:50)
12-12 11:43:27.960: W/System.err(22010):    at java.io.InputStream.read(InputStream.java:157)
12-12 11:43:27.960: W/System.err(22010):    at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:225)
12-12 11:43:27.960: W/System.err(22010):    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:178)
12-12 11:43:27.960: W/System.err(22010):    at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:174)
12-12 11:43:27.960: W/System.err(22010):    at java.io.BufferedInputStream.read(BufferedInputStream.java:319)
12-12 11:43:27.970: W/System.err(22010):    at java.io.FilterInputStream.read(FilterInputStream.java:133)
12-12 …
Run Code Online (Sandbox Code Playgroud)

connection https android

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×3

https ×2

ssl ×2

connection ×1

http ×1

java ×1

okhttp ×1

retrofit ×1

web-services ×1