Java.net.SocketException: 连接或出站已关闭

Java.net.SocketException: Connection or outbound has closed

我在调用外部沙箱时看到了这个问题。我发现 java 版本正在发生这种情况。有没有人见过这个问题并解决了它? 这种情况会间歇性发生。

沙盒returns 200 并在解析响应时抛出错误

java 版本:1.8.0_275 + 沙箱调用 => 不工作

java 版本:1.8.0_202 + 沙箱调用 => 运行良好

使用改造 2.3.0,Okhttp 3.8.0

java.net.SocketException: Connection or outbound has closed
    at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:967)
    at okio.Okio.write(Okio.java:79)
    at okio.AsyncTimeout.write(AsyncTimeout.java:180)
    at okio.RealBufferedSink.flush(RealBufferedSink.java:216)
    at okhttp3.internal.http2.Http2Writer.rstStream(Http2Writer.java:152)
    at okhttp3.internal.http2.Http2Connection.writeSynReset(Http2Connection.java:315)
    at okhttp3.internal.http2.Http2Stream.close(Http2Stream.java:226)
    at okhttp3.internal.http2.Http2Stream.cancelStreamIfNecessary(Http2Stream.java:454)
    at okhttp3.internal.http2.Http2Stream$FramingSource.close(Http2Stream.java:428)
    at okio.ForwardingSource.close(ForwardingSource.java:43)
    at okhttp3.internal.http2.Http2Codec$StreamFinishingSource.close(Http2Codec.java:199)
    at okio.RealBufferedSource.close(RealBufferedSource.java:455)
    at okio.RealBufferedSource.close(RealBufferedSource.java:455)
    at okio.InflaterSource.close(InflaterSource.java:126)
    at okio.GzipSource.close(GzipSource.java:182)
    at okio.RealBufferedSource.close(RealBufferedSource.java:455)
    at okio.ForwardingSource.close(ForwardingSource.java:43)
    at okio.RealBufferedSource.close(RealBufferedSource.java:455)
    at okio.RealBufferedSource.close(RealBufferedSource.java:443)
    at sun.nio.cs.StreamDecoder.implClose(StreamDecoder.java:378)
    at sun.nio.cs.StreamDecoder.close(StreamDecoder.java:193)
    at java.io.InputStreamReader.close(InputStreamReader.java:199)
    at okhttp3.ResponseBody$BomAwareReader.close(ResponseBody.java:258)
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._closeInput(ReaderBasedJsonParser.java:193)
    at com.fasterxml.jackson.core.base.ParserBase.close(ParserBase.java:368)
    at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1622)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
    at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
    at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
    at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
    at retrofit2.OkHttpCall.onResponse(OkHttpCall.java:112)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    at au.com.auspost.utils.MDCUtils.lambda$mdcRunnable[=11=](MDCUtils.java:24)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

将 retrofit2 库迁移到版本 2.8.1 后,此问题已得到解决。迁移到最新的retrofit2库后,我们遇到了认证验证问题。我们已通过生成新证书解决了认证问题。