为什么有些情况下改造需要很长时间才能得到响应?

问题描述 投票:0回答:2

有时修改@get请求 需要很长时间才能得到答案(10-15 秒)。 我只获取字符串数据。平均 1-2 kb。

当我从邮递员发送请求时没问题

您认为问题出在哪里?

RetrofitService.class;

 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>>

ViewModel.class;

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
                }
            })
    )
}
android kotlin retrofit retrofit2
2个回答
2
投票

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


0
投票

这方面有什么更新吗?我的应用程序中也面临同样的问题!!!!

© www.soinside.com 2019 - 2024. All rights reserved.