2017-06-18 66 views
1

很容易說它是重複的,但事實並非如此。如何設置OkHttpClient的連接超時? 2017

我讀了很多關於如何在android中設置連接超時的帖子,但帖子是4-7歲,我認爲我們都需要關於此主題的更新,因爲這些方法已被棄用或不再存在。

所以,問題是我如何設置我的連接超時,當我等待服務器的響應?

final Response response = httpClient.newCall(request).execute(); 

if (response.isSuccessful()) { 
          //success 
} else { 
     //unsuccessful 
} 
+0

如果使用在Android SDK的API的HttpClient,** **停止。這已被棄用和刪除。使用別的東西(例如,OkHttp)。如果您正在使用Android的獨立Apache HttpClient庫,則需要指定哪個版本,因爲API多年來一直在轉換。 – CommonsWare

+0

我的不好。我想寫okhttp。我使用'com.squareup.okhttp3:okhttp:3.8.0' – Rares

+0

嗯,你的問題是關於HttpClient的,儘管如此。如果你實際上使用OkHttp,[這裏是你如何配置超時](https://github.com/square/okhttp/wiki/Recipes#timeouts)。 – CommonsWare

回答

1

如果您創建OkHttpClient通過OkHttpClient.Builderthere are connectTimeout(), readTimeout(), and writeTimeout() methods,您可以調用的各種超時選項。

如果您需要爲特定HTTP請求覆蓋它們,請致電OkHttpClient上的newBuilder()。這給你一個OkHttpClient.Builder與你最初使用的設置相同。 You can override those as needed,並從新的Builder創建一個臨時OkHttpClient,將其用於此一次性呼叫。

+0

感謝您的回覆! – Rares