【发布时间】:2019-12-11 00:26:10
【问题描述】:
我正在使用 Retrofit 和 OkHttp 连接到服务器。 在大多数情况下,它运作良好。但在某些情况下它会失败。 有时 HTTP FAILED: java.net.UnknownHostException 有时 java.net.SocketTimeoutException。这个错误只是当我使用家庭 wifi 连接到服务器时。但是当我使用移动网络时它很好并且没有问题。 与模拟器一起使用很好。它只发生在真实设备上。只是有些时候不是所有时候。
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build();
retrofit = new Retrofit.Builder()
.baseUrl(ClientConfigs.REST_API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
【问题讨论】:
-
Stack Overflow 用于编程问题。你的问题是什么?如果您的问题是“如何避免这些错误?”,答案是“停止使用互联网”。当您发布应用程序并在各种情况下在各种网络上使用时,您会很多遇到这类问题。
标签: android retrofit socket-timeout-exception