我使用Retrofit來調用REST Web API(GET請求)。使用OkHttp進行Retrofit調用REST服務時出錯
的RestAdapter是:
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(strEndpoint)
.build();
,這工作得很好。
有時,然而,HTTP GET是慢了一點,讓我在failure(RetrofitError err)
已經實現了回調函數返回一個錯誤,如:
10-02 16:47:15.279: I/ERROR(16413): error downloading data: failed to connect to myserver.privete.com (port 80) after 15000ms
但是,此錯誤appens只有當我用wifi連接。
所以我決定嘗試改變連接超時,添加自定義OkClient,使用庫OkHttp
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(60, TimeUnit.SECONDS);
client.setReadTimeout(60, TimeUnit.SECONDS);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(Parameters.production ? Parameters.productionEndPoint : Parameters.testEndPoint)
.setClient(new OkClient(client))
.build();
但是,這產生於緊接本錯誤:
10-02 16:42:38.489: I/ERROR(14259): error downloading data: com.squareup.okhttp.OkHttpClient.open
我的版本我用的是如下所示:
Retrofit: 1.6.1
okhttp: 2.0.0
okhttp-urlconnection: 1.6.0
編輯:
我也試過okhttp-urlconnection 2.0.0
你確定myserver.private.com是移動設備的同一網絡上? – Dimitri 2014-10-02 16:33:33