Android 启动器应用程序上的Okhttp SocketTimeoutException
我有一个应用程序是Android的默认启动器 当我重新启动手机时,应用程序会运行,然后尝试进行http呼叫,并出现以下异常:Android 启动器应用程序上的Okhttp SocketTimeoutException,android,retrofit,retrofit2,okhttp,android-launcher,Android,Retrofit,Retrofit2,Okhttp,Android Launcher,我有一个应用程序是Android的默认启动器 当我重新启动手机时,应用程序会运行,然后尝试进行http呼叫,并出现以下异常: HTTP FAILED: java.net.SocketTimeoutException: failed to connect to XXXX (port 80) from localAddress.getAddress() (port 42208) after 30000ms 如果我离开应用程序并返回到它,http调用就会开始工作 这是我的客户端设置: val cli
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()
设备:小米红米8a
操作系统:MIUI10.3.3.0安卓9
改装:2.7.2
OKHttp:4.4.0我也遇到过类似的问题。我不确定这是你的答案,但我希望,它会解决你的问题 如果我错了,您正在尝试使用RxJava2获取数据。根据这份文件-。文档告诉我们,可丢弃的错误在可观察到的被处置/终止后不会处理 这意味着当您的Single/Observable调用onComplete时,有时它会携带错误并抛出UndeliverableException、SocketTimeoutException或其他异常。在Firebase Crashlytics中我们经常遇到SocketTimeoutException 我们已经在AppApplication类[onCreate]中添加了这一行-
我希望,这将有助于……: 对不起,朋友,我已经试过你的建议了,还是不走运,谢谢你尝试。听到这个消息我很难过。你能看看这个吗?我在okhttp问题中找到了它——我也去过那里。我试图在没有改造的情况下用OkHttp打电话,但仍然面临这个问题。你的URL是本地主机吗?我认为,你给定的URL是个问题。你能查其他网址吗?在Android 8中,默认情况下不允许明文HTTP通信。您必须在AndroidManifest中添加android:usesCleartextTraffic=true。详细信息:它不是本地主机。问题是,当重新打开应用程序时,一切正常
RxJavaPlugins.setErrorHandler { error: Throwable ->
Timber.e(error) // you can do some task with the Throwable here if you need
}