如何检查Retrofit请求呼叫是否完成?

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

如何弄清楚我的请求调用是否已执行?在AsyncTask中,我们只需检查(mPlaceObj.getStatus().equals(AsyncTask.Status.FINISHED)并返回一个布尔值。

另一方面,在改造中,我们使用方法mCall.isExecuted(),如果此调用是{@linkplain #execute()执行}或{@linkplain #enqueue(Callback)入队},则返回true。

那么,有什么办法可以做,请建议吗?

android android-asynctask callback retrofit retrofit2
1个回答
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使用此依赖项:

编译'com.squareup.okhttp3:logging-interceptor:3.8.1'

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