Время соединения никогда не истекает при OkHttp - PullRequest
0 голосов
/ 10 сентября 2018

С помощью 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 секунд).

Как мне обработать тайм-аут соединения для длительного времени ответа?

Заранее спасибо.

...