如何检查Retrofit请求呼叫是否完成?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查Retrofit请求呼叫是否完成?相关的知识,希望对你有一定的参考价值。
如何弄清楚我的请求调用是否已执行?在AsyncTask中,我们只需检查(mPlaceObj.getStatus().equals(AsyncTask.Status.FINISHED)
并返回一个布尔值。
另一方面,在改造中,我们使用方法mCall.isExecuted()
,如果此调用是{@linkplain #execute()执行}或{@linkplain #enqueue(Callback)入队},则返回true。
那么,有什么办法可以做,请建议吗?
答案
您可以使用HttpLoggingInterceptor检查Retrofit请求调用。
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
httpClient.addInterceptor(logging);
将此记录器与您的改装对象一起使用,如下所示:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
您将在Logcat Monitor中获取Request Call的Logcat。跟踪它。
您将使用Retrofit获得两个州,即onResponse&onFailure。如果您的电话已成功完成,那么您可以在onResponse中找到您的电话,如果有异常,那么您的电话将在onFailure中。
参考这个tutorial,你会对改造及其功能有更多的了解。
对Logger使用此依赖项:
编译'com.squareup.okhttp3:logging-interceptor:3.8.1'
以上是关于如何检查Retrofit请求呼叫是否完成?的主要内容,如果未能解决你的问题,请参考以下文章