改造第一次服务响应很慢

时间:2018-04-24 15:11:22

标签: android http https retrofit2 android-webservice

我正在使用Retrofit 2.我面临的问题是:在吃掉connectTimeout中提到的所有时间段之后,第一个回应是迟到了。在第一次调用之后,所有其他Web服务调用都没有时间运行。

此外,如果我在Wifi网络上运行它没有任何问题,即第一个Web服务运行并给出响应而不会给出任何问题。但是如果我在移动/设备网(在移动设备上由服务提供商提供的互联网)上运行它,则在connectTimeout中提到的所有时间吃完后再次响应。

以下是我的Retrofit 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

任何人都可以对问题和任何解决方案提出解决方案。

0 个答案:

没有答案