1
0
Эх сурвалжийг харах

feat: 新增 BaseRequest.execute 非内联函数重载

drake 2 жил өмнө
parent
commit
e1a117d826

+ 12 - 0
net/src/main/java/com/drake/net/request/BaseRequest.kt

@@ -32,6 +32,7 @@ import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
 import java.io.File
 import java.net.URL
 import java.util.concurrent.TimeUnit
+import kotlin.reflect.KType
 import kotlin.reflect.typeOf
 
 abstract class BaseRequest {
@@ -442,6 +443,17 @@ abstract class BaseRequest {
         return newCall.execute().convert(R::class.java)
     }
 
+    /**
+     * 执行同步请求
+     * 本方法不会为请求默认添加[KType], 支持Java调用
+     */
+    fun <R> execute(type: Class<R>): R {
+        NetConfig.requestInterceptor?.interceptor(this)
+        val request = buildRequest()
+        val newCall = okHttpClient.newCall(request)
+        return newCall.execute().convert(type)
+    }
+
     /**
      * 执行同步请求
      * @return 一个包含请求成功和错误的Result