Я использую Retrofit 2. Проблема, с которой я сталкиваюсь, такова: первый ответ приходит с опозданием после истощения всего периода времени, указанного в connectTimeout
. И после первого вызова все остальные вызовы веб-службы выполняются без затрат времени.
Кроме того, если я запускаю его в сети Wi-Fi, он работает без каких-либо проблем, т. Е. Запускается первая веб-служба и дает ответ без каких-либо проблем. Но если я запускаю его в сети Mobile / Device (Интернет, предоставляемый поставщиком услуг на мобильном устройстве), ответ снова доставляется после того, как он съел все время, указанное в connectTimeout
.
Ниже приведен мой код класса модифицированного API: -
public class APIClient {
private static Retrofit retrofit = null;
public static Retrofit getClient() {
if (retrofit == null) {
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request originalRequest = chain.request();
Request request = originalRequest.newBuilder()
.header(Constants.KeyConstants.HEADER_AUTH, Constants.ConstantKeyTag.HEADER_AUTH_VALUE)
.header(Constants.KeyConstants.HEADER_CONTENT_TYPE, Constants.ValuesConstant.HEADER_CONTENT_TYPE_VALUE)
.method(originalRequest.method(), originalRequest.body())
.build();
return chain.proceed(request);
}
});
Gson gson = new GsonBuilder()
.setLenient()
.create();
retrofit = new Retrofit.Builder()
.baseUrl(Constants.AppSpecificConstants.WS_BASEURL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(okHttpClient)
.build();
}
return retrofit;
}
final static OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.build();
}
Я указал ссылки ниже, но ничего полезного не нашел:
https://github.com/square/retrofit/issues/1489
https://stackoverflow.com/questions/39915469/retrofit-2-delayed-response
https://stackoverflow.com/questions/46034047/the-response-from-the-retrofit-call-is-too-slow-and-it-returns-a-null-list?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
Может ли кто-нибудь осветить проблему и найти решение для ее решения.