如何确定我的请求调用是否已执行?
在AsyncTask中,我们只需检查(mPlaceObj.getStatus().equals(AsyncTask.Status.FINISHED)
它返回一个布尔值。
另一方面,在改造中,我们使用方法mCall.isExecuted()
,如果此调用是{@linkplain #execute()执行}或{@linkplain #enqueue(回调)入队},则返回true。 / p>
那么,有什么办法可以做,请建议吗?
答案 0 :(得分:0)
您可以使用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:
compile' com.squareup.okhttp3:logging-interceptor:3.8.1'