kotlin 为什么在某些情况下需要很长时间才能从改造中得到回应?

bhmjp9jg  于 2022-11-25  发布在  Kotlin
关注(0)|答案(1)|浏览(119)

Retrofit @get request sometimes它需要很长的时间来得到答案(10-15秒)。我只得到字符串数据。平均1-2 kb。
当我从 Postman 发送请求时没有问题
你觉得问题出在哪里?

改造服务类;

private val okHttpClient = OkHttpClient().newBuilder()
        .connectTimeout(20, TimeUnit.SECONDS)
        .readTimeout(20, TimeUnit.SECONDS)
        .writeTimeout(20, TimeUnit.SECONDS)
        .build()

private val call = Retrofit.Builder()
    .baseUrl(Constants.LINK)
    .client(okHttpClient)
    .addConverterFactory(GsonConverterFactory.create())
    .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
    .build().create(ApiEndpointRXJava::class.java)

fun getRetrofit(query: String, auth: String, queryList: List<String>): Single<List<ListModel>> {
    return  call.getRetrofit(query, auth, queryList)
}

接口;**

@GET(".../.../...")
    fun getRetrofit(
        @Query("query") query: String,
        @Header("Authorization") authorization: String,
        @Query("queryList") queryList: List<String>
    ): Single<List<ListModel>>

视图模型.类;

fun getRetrofit(query: String, auth: String, queryList: List<String>) {
    errorData.value = false

    disposable.add(
        retrofit
            .getRetrofit(query, auth, queryList)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(object : DisposableSingleObserver<List<ListModel>>() {
                override fun onSuccess(t: List<ListModel>) {
                    v.value = t
                }

                override fun onError(e: Throwable) {
                    e.value = true
                }
            })
    )
}
bnlyeluc

bnlyeluc1#

如果它有时工作得很快有时有延迟-看起来问题不在你的代码库中。可能是服务器端或网络连接的问题。要检查这种情况,你可以使用Fiddler或Charles来嗅探你的应用程序流量。如果嗅探程序的响应时间相同,那么问题与你的代码库无关。

相关问题