Bläddra i källkod

变更NetRequestBody/NetResponse参数

drake 3 år sedan
förälder
incheckning
201b9901cc

+ 9 - 7
net/src/main/java/com/drake/net/body/BodyExtension.kt

@@ -1,18 +1,20 @@
 package com.drake.net.body
 
-import com.drake.net.request.downloadListeners
-import com.drake.net.request.uploadListeners
-import okhttp3.Request
+import com.drake.net.interfaces.ProgressListener
 import okhttp3.RequestBody
 import okhttp3.ResponseBody
 import okhttp3.ResponseBody.Companion.asResponseBody
 import okio.Buffer
+import java.util.concurrent.ConcurrentLinkedQueue
 
-fun RequestBody.toNetRequestBody(request: Request) =
-    run { NetRequestBody(this, request.uploadListeners()) }
+fun RequestBody.toNetRequestBody(listeners: ConcurrentLinkedQueue<ProgressListener>? = null) = run {
+    NetRequestBody(this, listeners)
+}
 
-fun ResponseBody.toNetResponseBody(request: Request, complete: (() -> Unit)? = null) =
-    run { NetResponseBody(this, request.downloadListeners(), complete) }
+fun ResponseBody.toNetResponseBody(
+    listeners: ConcurrentLinkedQueue<ProgressListener>? = null,
+    complete: (() -> Unit)? = null
+) = run { NetResponseBody(this, listeners, complete) }
 
 /**
  * 复制一段指定长度的字符串内容

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

@@ -44,7 +44,7 @@ class NetRequestBody(
 
     @Throws(IOException::class)
     override fun writeTo(sink: BufferedSink) {
-        if (bufferedSink == null) bufferedSink = sink.progress().buffer()
+        if (bufferedSink == null) bufferedSink = sink.toProgress().buffer()
         bufferedSink?.let {
             requestBody.writeTo(it)
             it.flush()
@@ -64,7 +64,7 @@ class NetRequestBody(
         return buffer.readUtf8(byteCountFinal)
     }
 
-    private fun Sink.progress() = object : ForwardingSink(this) {
+    private fun Sink.toProgress() = object : ForwardingSink(this) {
         var writeByteCount = 0L
 
         @Throws(IOException::class)

+ 2 - 2
net/src/main/java/com/drake/net/body/NetResponseBody.kt

@@ -31,7 +31,7 @@ class NetResponseBody(
 ) : ResponseBody() {
 
     private val progress = Progress()
-    private val bufferedSource by lazy { responseBody.source().progress().buffer() }
+    private val bufferedSource by lazy { responseBody.source().toProgress().buffer() }
     private val contentLength by lazy { responseBody.contentLength() }
 
     override fun contentType(): MediaType? {
@@ -62,7 +62,7 @@ class NetResponseBody(
         return buffer.readUtf8(byteCountFinal)
     }
 
-    private fun Source.progress() = object : ForwardingSource(this) {
+    private fun Source.toProgress() = object : ForwardingSource(this) {
         var readByteCount: Long = 0
 
         @Throws(IOException::class)

+ 2 - 2
net/src/main/java/com/drake/net/interceptor/NetOkHttpInterceptor.kt

@@ -25,7 +25,7 @@ object NetOkHttpInterceptor : Interceptor {
 
     override fun intercept(chain: Interceptor.Chain): Response {
         var request = chain.request()
-        val netRequestBody = request.body?.toNetRequestBody(request)
+        val netRequestBody = request.body?.toNetRequestBody(request.uploadListeners())
         request = request.newBuilder().method(request.method, netRequestBody).apply {
             if (request.uploadListeners() == null) setLabel(NetLabel.UploadListeners())
             if (request.downloadListeners() == null) setLabel(NetLabel.DownloadListeners())
@@ -42,7 +42,7 @@ object NetOkHttpInterceptor : Interceptor {
         } catch (e: Throwable) {
             throw NetException(request, cause = e)
         }
-        val netResponseBody = response.body?.toNetResponseBody(request) {
+        val netResponseBody = response.body?.toNetResponseBody(request.downloadListeners()) {
             chain.call().detachFromNet()
         }
         return response.newBuilder().body(netResponseBody).build()

+ 0 - 2
sample/src/main/java/com/drake/net/sample/ui/fragment/RequestMethodFragment.kt

@@ -64,8 +64,6 @@ class RequestMethodFragment : Fragment(R.layout.fragment_request_method) {
         scopeNetLife {
             tv_fragment.text = Patch<String>("api").await()
         }
-
-        arrayOf(1).toMutableList()
     }
 
     private fun DELETE() {