private boolean isRecoverable(IOException e, boolean requestSendStarted) {
....
// If there was an interruption don't recover, but if there was a
//timeout connecting to a route
// we should try the next route (if there is one).
if (e instanceof InterruptedIOException) {
return e instanceof SocketTimeoutException && !requestSendStarted;
}
....
return true;
}
はここOKHttp
でRetryAndFollowUpInterceptorのコードスニペットがあるときに再試行しないように設計されています。なぜOKHttpはしてSocketTimeoutException
とrequestSendStarted == trueの場合、OkHttp
は再試行しません。
私はいくつかの他のルータが存在する場合、我々は目標はOkHttpがまったく接続できませんでした場合は再試行するようにした
私には意味があります。したがって、ユーザーが再試行したい場合は、OKHttp Sourceを変更するか、この種のExceptionsをキャッチしてカスタムインターセプタで何かを行うことができます。 – cafecat
ええ、あなたはインターセプターで例外を捕まえて、自分でやり直すことができます。 –