OkHttp连接永不超时

时间:2018-09-10 10:57:08

标签: android retrofit rx-java2 okhttp connection-timeout

使用okhttp,我将okhttp连接超时值定义为3秒以获取超时错误。

OkHttpClient.Builder httpClient = new OkHttpClient().newBuilder()
            .connectTimeout(3, TimeUnit.SECONDS)
            .readTimeout(3, TimeUnit.SECONDS)
            .writeTimeout(3, TimeUnit.SECONDS);

我使用了Retrofit和rxjava进行了网络调用,并在订阅方法中使用onError()使用者处理了网络错误情况。

mTheApi.getMenuAPI(request)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    response -> {
                        Log.d(TAG, "getMenuAPI: " + response);
                    },
                    throwable -> {
                        // network error
                        Log.e(TAG, "getMenuAPI error: " + throwable.getMessage());
                    }
            ));

但是,当我使用这些超时设置调用API时,连接将永远不会超时以延长API响应时间。

通常情况下,它必须在3秒钟后超时,但仍要继续调用API超过3秒钟(或多或少10秒钟)。

如何在较长的响应时间内处理连接超时?

谢谢。

0 个答案:

没有答案