使用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秒钟)。
如何在较长的响应时间内处理连接超时?
谢谢。