title: Why OKHttp is designed as not to retry when SocketTimeoutException
body: <pre><code>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 &amp;&amp; !requestSendStarted;
      }
     ....
      return true;
  }
  </code></pre>
  
  <p>Here is the code snippet in <a href="https://github.com/square/okhttp/blob/master/okhttp/src/main/java/okhttp3/internal/http/RetryAndFollowUpInterceptor.java" rel="nofollow noreferrer">RetryAndFollowUpInterceptor</a> in <code>OKHttp</code>.</p>
  
  <p>My question is why <code>OkHttp</code> not retry when <code>SocketTimeoutException</code> and requestSendStarted == true? </p>
  
  <p>Because I think if there are some other routers, we can retry another ip or router</p>