title: SocketTimeoutException in Retrofit
body: <p>I am trying to <strong>POST</strong> request to server for fetch data but sometime It's occure <code>SocketTimeoutException</code>!</p>
  
  <p>I used <code>Ok3Client</code> to resolve it but I facing the same Exception   How can I resolve it?</p>
  
  <p>My code is below</p>
  
  <pre><code>public void getNormalLogin() {
          if (mProgressDialog == null) {
              mProgressDialog = ViewUtils.createProgressDialog(mActivity);
              mProgressDialog.show();
          } else {
              mProgressDialog.show();
          }
  
          if (Build.VERSION.SDK != null &amp;&amp; Build.VERSION.SDK_INT &gt; 13) {
              restadapter = new RestAdapter.Builder().setEndpoint(HOST).setLogLevel(RestAdapter.LogLevel.FULL).setClient(new Ok3Client(new OkHttpClient())).build();
              mApi = restadapter.create(Api.class);
              mApi.SignIn(etEmail.getText().toString(), etPassword.getText().toString(), new Callback&lt;ArrayList&lt;SignUpMainBean&gt;&gt;() {
                  @Override
                  public void success(ArrayList&lt;SignUpMainBean&gt; signUpMainBeen, Response response) {
                      mProgressDialog.dismiss();
                      LOGD("Status:: ::", String.valueOf(response.getStatus()));
                      LOGD("Code:: ::", String.valueOf(signUpMainBeen.get(0).getCode()));
                      if (signUpMainBeen != null &amp;&amp; signUpMainBeen.size() &gt; 0) {
                          if (signUpMainBeen.get(0).getCode() == 1) {
  
                              for (int i = 0; i &lt; signUpMainBeen.size(); i++) {
                                  for (int j = 0; j &lt; signUpMainBeen.get(i).getResult().size(); j++) {
                                      showToast(mActivity, getString(R.string.you_have_successfully_login), Toast.LENGTH_SHORT);
                                      LOGD("Success", "Success");                                                                         
                                     finish();
                                      SignIn.mActivity.finish();
                                  }
                              }
  
                          } else if (signUpMainBeen.get(0).getCode() == 0) {
                              mProgressDialog.dismiss();
                              showToast(mActivity, getString(R.string.invalid_email_password), Toast.LENGTH_SHORT);
                              LOGD("Invalid email or password", "Invalid email or password");
                          } else if (signUpMainBeen.get(0).getCode() == -1) {
                              mProgressDialog.dismiss();
                              showToast(mActivity, getString(R.string.your_account_is_inactive), Toast.LENGTH_SHORT);
                              LOGD("Your account is inactive", "Your account is inactive");
                          }
                      }
                  }
  
                  @Override
                  public void failure(RetrofitError error) {
                      mProgressDialog.dismiss();
                      showToast(mActivity, getString(R.string.can_not_connect_to_server), Toast.LENGTH_SHORT);
                      LOGD("Failure", "Failure");
                  }
              });
          }
      }
  </code></pre>
  
  <p>My Error Log is</p>
  
  <pre><code>D/Retrofit: java.net.SocketTimeoutException
  at java.net.PlainSocketImpl.read(PlainSocketImpl.java:532)
  at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:40)
  at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:255)
  at okio.Okio$2.read(Okio.java:139)
  at okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
  at okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
  at okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
  at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
  at okhttp3.internal.http.Http1xStream.readResponse(Http1xStream.java:185)
  at okhttp3.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:126)
  at okhttp3.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:723)
  at okhttp3.internal.http.HttpEngine.access$200(HttpEngine.java:81)
  at okhttp3.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:708)
  at okhttp3.internal.http.HttpEngine.readResponse(HttpEngine.java:563)
  at okhttp3.RealCall.getResponse(RealCall.java:241)
  at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
  at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
  at okhttp3.RealCall.execute(RealCall.java:57)
  at com.jakewharton.retrofit.Ok3Client.execute(Ok3Client.java:40)
  at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:326)
  at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
  at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278)
  at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  at retrofit.Platform$Android$2$1.run(Platform.java:142)
  at java.lang.Thread.run(Thread.java:818)
  </code></pre>