文件二次上传提示 Caused by: java.net.SocketException: Socket closed

  1. 首先不支持断点续传
  2. 取消后isUploading是false,不再上传文件
  3. 再次上传启动新的上传task,但是就会报错
  4. 不单单是在次上传,只要第一次取消了上传,下一次的任何请求都会报错
  5. header里加上“Connection” = “close”,试过了,不好使(其他人的解决方式
  @Override
    public void writeTo(BufferedSink sink) throws IOException {
        Source source = null;
        try {
            source = Okio.source(mFile);
            long total = 0;
            long section;
            onStart();
            while (isUploading) {
                section = source.read(sink.buffer(), SEGMENT_SIZE);
                if (section == -1) {
                    break;
                }
                total += section;
                sink.flush();
                onProcess(total);
            }
        } finally {
            Util.closeQuietly(source);
            onFinish();
        }
    }
         java.net.SocketTimeoutException: timeout
             at okio.Okio$4.newTimeoutException(Okio.java:232)
             at okio.AsyncTimeout.exit(AsyncTimeout.java:286)
             at okio.AsyncTimeout$2.read(AsyncTimeout.java:241)
             at okio.RealBufferedSource.indexOf(RealBufferedSource.java:358)
             at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:230)
             at okhttp3.internal.http1.Http1ExchangeCodec.readHeaderLine(Http1ExchangeCodec.java:242)
             at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.java:213)
             at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:115)
             at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:94)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
             at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:43)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
             at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
             at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
             at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
             at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
             at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:221)
             at okhttp3.RealCall$AsyncCall.execute(RealCall.java:172)
             at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
             at java.lang.Thread.run(Thread.java:764)
         Caused by: java.net.SocketException: Socket closed
             at java.net.SocketInputStream.read(SocketInputStream.java:203)
             at java.net.SocketInputStream.read(SocketInputStream.java:139)
             at okio.Okio$2.read(Okio.java:140)
             at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值