2017-06-18 2 views
1

Es ist einfach zu sagen, es ist doppelt, aber es ist nicht.Wie kann ich das Verbindungstimeout für OkHttpClient einstellen? 2017

Ich habe viele Post darüber gelesen, wie man das Verbindungstimeout in android setzt, aber der Beitrag ist 4-7 Jahre alt und ich denke, dass wir alle ein Update zu diesem Thema brauchen, weil diese Methoden veraltet sind oder nicht mehr existieren.

Die Frage ist also, wie kann ich meine Verbindung Timeout einstellen, wenn ich auf eine Antwort vom Server warte?

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

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

Wenn Sie die HttpClient-API im Android SDK verwenden, ** stop **. Das wurde veraltet und entfernt. Verwenden Sie etwas anderes (z. B. OkHttp). Wenn Sie die eigenständige Apache HttpClient-Bibliothek für Android verwenden, müssen Sie angeben, welche Version verwendet werden soll, da sich diese API im Laufe der Jahre verschoben hat. – CommonsWare

+0

mein schlechtes. Ich wollte okhttp schreiben. Ich benutze 'com.squareup.okhttp3: okhttp: 3.8.0' – Rares

+0

Ähm, deine Frage dreht sich alles um HttpClient. Wenn Sie stattdessen OkHttp verwenden, [hier konfigurieren Sie Timeouts] (https://github.com/square/okhttp/wiki/Recipes#timeouts). – CommonsWare

Antwort

1

Wenn Sie erstellen Ihre OkHttpClient durch eine OkHttpClient.Builder, there are connectTimeout(), readTimeout(), and writeTimeout() methods, die Sie für die verschiedenen Timeout-Optionen aufrufen können.

Wenn Sie sie für eine bestimmte HTTP-Anforderung überschreiben müssen, rufen Sie newBuilder() auf Ihrem OkHttpClient. Das gibt Ihnen eine OkHttpClient.Builder mit den gleichen Einstellungen wie Sie ursprünglich verwendet. You can override those as needed, und erstellen Sie eine temporäre OkHttpClient von der neuen Builder, die für diesen einmaligen Anruf verwenden.

+0

Vielen Dank für Ihre Antwort !! – Rares

Verwandte Themen