我使用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'
答案 0 :(得分:0)
有类似的问题解决了它:
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(1, TimeUnit.MINUTES)
.writeTimeout(1, TimeUnit.MINUTES)
.connectTimeout(1, TimeUnit.MINUTES)
.build();