我正在使用 Retrofit 和 OkHttp 连接到服务器。大多数时候效果很好。但在某些情况下它会失败。有时 HTTP失败: 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'
Run Code Online (Sandbox Code Playgroud)