connectTimeout более 30 секунд не работает для OKHTTP - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь установить connectTimeout на 2 минуты, но попытки все равно не удаются только через 30 секунд.

Мой клиент выглядит следующим образом:

client = new OkHttpClient.Builder()
            .callTimeout(2, TimeUnit.MINUTES)
            .connectTimeout(2, TimeUnit.MINUTES)
            .writeTimeout(2, TimeUnit.MINUTES)
            .readTimeout(2, TimeUnit.MINUTES)
            .build();

public Call callReq(Callback callback) {


    Request.Builder builder = new Request.Builder()
            .url("http://203.0.113.1");

    //Create request builder
    final Request request = builder
            .build();

    Call call = client.newCall(request);

    call.enqueue(callback);
    return call;
}

Неудачный ответ на этот вызов Я получаю в течение 30 секунд. Я хотел, чтобы подождать 2 минуты. Это работает, если я уменьшу время ожидания до 15 секунд.

1 Ответ

0 голосов
/ 29 марта 2020

Я подозреваю, что у вас установлены дополнительные тайм-ауты платформы, например, тайм-аут моего теста после 1: 15.

package okhttp3.curl

import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import okhttp3.logging.LoggingEventListener
import java.util.concurrent.TimeUnit

fun main() {
  val listener = LoggingEventListener.Factory()
  val client = OkHttpClient.Builder()
      .eventListenerFactory(listener)
      .callTimeout(2, TimeUnit.MINUTES)
      .connectTimeout(2, TimeUnit.MINUTES)
      .writeTimeout(2, TimeUnit.MINUTES)
      .readTimeout(2, TimeUnit.MINUTES)
      .build()
  val response: Response = client.newCall(
        Request.Builder().url("http://203.0.113.1").build()).execute()

  println(response.request.url)
}

Вывод

Mar 29, 2020 12:33:58 PM okhttp3.internal.platform.Platform log
INFO: [72 ms] connectStart: /203.0.113.1:80 DIRECT
Mar 29, 2020 12:35:14 PM okhttp3.internal.platform.Platform log
INFO: [75599 ms] connectFailed: null java.net.ConnectException: Failed to connect to /203.0.113.1:80
Mar 29, 2020 12:35:14 PM okhttp3.internal.platform.Platform log
INFO: [75601 ms] callFailed: java.net.ConnectException: Failed to connect to /203.0.113.1:80
Exception in thread "main" java.net.ConnectException: Failed to connect to /203.0.113.1:80
...