有时修改@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
}
})
)
}
如果有时它工作得很快,有时却有延迟 - 看起来问题不在您的代码库中。 可能是服务器端或网络连接的问题。 要检查这种情况,您可以使用 Fiddler 或 Charles 来嗅探您的应用程序流量。如果嗅探程序中的响应具有相同的时间,那么问题与您的代码库无关。
这方面有什么更新吗?我的应用程序中也面临同样的问题!!!!