У меня есть приложение, которое является пусковой установкой по умолчанию из Android.
Когда я перезагружаю телефон, приложение запускается, затем пытается выполнить http-вызов и получает это исключение:
HTTP FAILED: java.net.SocketTimeoutException: failed to connect to XXXX (port 80) from localAddress.getAddress() (port 42208) after 30000ms
Если я выйду из приложения и вернусь к нему, http-вызовы начнут работать.
Это моя настройка клиента:
val client = OkHttpClient.Builder()
client.connectTimeout(30, TimeUnit.SECONDS)
client.readTimeout(30, TimeUnit.SECONDS)
client.writeTimeout(30, TimeUnit.SECONDS )
client.retryOnConnectionFailure(true)
client.connectionPool(ConnectionPool(0, 5, TimeUnit.MINUTES))
client.protocols(listOf(Protocol.HTTP_1_1))
val retrofit = Retrofit.Builder()
.client(client.build())
.addCallAdapterFactory(
RxJava2CallAdapterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(
GsonConverterFactory.create())
.baseUrl(base_url)
.build()
Устройство: Xiaomi Redmi 8a
ОС: MIUI 10.3.3.0 Android 9
Модификация: 2.7.2
OKHttp: 4.4.0