ソースを参照

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

drake 2 年 前
コミット
e1a117d826
1 ファイル変更12 行追加0 行削除
  1. 12 0
      net/src/main/java/com/drake/net/request/BaseRequest.kt

+ 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