2016-10-20 5 views
1

Wie kann ich das Timeout in OkHTTP fangen? Wird es in der onFailure Methode "gerufen"?Handle Timeout in OkHTTP

Ich würde gerne mit der Situation umgehen, in der ich eine schlechte Internetverbindung habe. Im Falle einer Zeitüberschreitung muss ich einige Tasten aktivieren, damit der Benutzer es erneut versuchen kann.

// Get a handler that can be used to post to the main thread 
    client.newCall(request).enqueue(new Callback() { 
     @Override 
     public void onFailure(Call call, IOException e) { 
      hideDialog(); 
      e.printStackTrace(); 

      // handle timeouts here, enable buttons... 
     } 

Antwort

0

Sie können das Zeitlimit für Verbindung und Antwort für Ihre Anfrage erhöhen. Verwenden Sie folgenden Code,

client.setConnectTimeout(15, TimeUnit.SECONDS); // connect timeout 
client.setReadTimeout(15, TimeUnit.SECONDS); // socket timeout 
+0

Ich habe das getan. Es gibt Fälle, in denen diese Timeouts nicht genug sind. –

+0

Sie können Timeout erhöhen, 15 zu Nein ändern. von der Sekunde, die Sie wollen, und Sie können auchWriteTimeout() wie oben setzen. –

+1

Ok, aber ich möchte etwas tun, wenn es ein Timeout wäre .. –