Explorar o código

修复Profiler导致的请求问题

drake %!s(int64=3) %!d(string=hai) anos
pai
achega
c833d36bfe
Modificáronse 1 ficheiros con 6 adicións e 5 borrados
  1. 6 5
      net/src/main/java/com/drake/net/body/NetRequestBody.kt

+ 6 - 5
net/src/main/java/com/drake/net/body/NetRequestBody.kt

@@ -30,7 +30,6 @@ class NetRequestBody(
 ) : RequestBody() {
 
     private val progress = Progress()
-    private var bufferedSink: BufferedSink? = null
     val contentLength by lazy { requestBody.contentLength() }
 
     override fun contentType(): MediaType? {
@@ -44,10 +43,12 @@ class NetRequestBody(
 
     @Throws(IOException::class)
     override fun writeTo(sink: BufferedSink) {
-        if (bufferedSink == null) bufferedSink = sink.toProgress().buffer()
-        bufferedSink?.let {
-            requestBody.writeTo(it)
-            it.flush()
+        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()
         }
     }