Explorar o código

fix: IO流关闭

drake %!s(int64=2) %!d(string=hai) anos
pai
achega
6a45b6345f

+ 4 - 3
net/src/main/java/com/drake/net/body/NetRequestBody.kt

@@ -43,9 +43,10 @@ class NetRequestBody(
 
     @Throws(IOException::class)
     override fun writeTo(sink: BufferedSink) {
-        if (sink is Buffer || sink.toString()
-                .contains("com.android.tools.profiler.support.network.HttpTracker\$OutputStreamTracker")
-        ) requestBody.writeTo(sink) else {
+        if (sink is Buffer ||
+            sink.toString().contains("com.android.tools.profiler.support.network.HttpTracker\$OutputStreamTracker")) {
+            requestBody.writeTo(sink)
+        } else {
             val bufferedSink: BufferedSink = sink.toProgress().buffer()
             requestBody.writeTo(bufferedSink)
             bufferedSink.close()

+ 2 - 0
net/src/main/java/com/drake/net/response/ResponseExtension.kt

@@ -27,6 +27,7 @@ import com.drake.net.request.*
 import com.drake.net.tag.NetTag
 import com.drake.net.utils.md5
 import okhttp3.Response
+import okhttp3.internal.closeQuietly
 import okio.buffer
 import okio.sink
 import java.io.File
@@ -128,6 +129,7 @@ fun Response.file(): File? {
         if (!file.exists()) file.createNewFile()
         file.sink().buffer().use {
             it.writeAll(source)
+            source.closeQuietly()
         }
         // 下载完毕删除临时文件
         if (request.downloadTempFile()) {