Quellcode durchsuchen

feat: contentLength未知的上传对象finish也有效

drake vor 1 Jahr
Ursprung
Commit
1d3421b311
1 geänderte Dateien mit 11 neuen und 1 gelöschten Zeilen
  1. 11 1
      net/src/main/java/com/drake/net/body/NetRequestBody.kt

+ 11 - 1
net/src/main/java/com/drake/net/body/NetRequestBody.kt

@@ -28,6 +28,7 @@ import com.drake.net.component.Progress
 import com.drake.net.interfaces.ProgressListener
 import okhttp3.MediaType
 import okhttp3.RequestBody
+import okhttp3.internal.closeQuietly
 import okio.*
 import java.io.IOException
 import java.util.concurrent.ConcurrentLinkedQueue
@@ -57,7 +58,16 @@ class NetRequestBody(
         } else {
             val bufferedSink: BufferedSink = sink.toProgress().buffer()
             body.writeTo(bufferedSink)
-            bufferedSink.close()
+            bufferedSink.closeQuietly()
+            if (contentLength == -1L) {
+                progressListeners?.forEach { progressListener ->
+                    progressListener.onProgress(
+                        progress.apply {
+                            finish = true
+                        }
+                    )
+                }
+            }
         }
     }