title: Retrying an http connection
body: <p>I'm making an http request. I'm on a platform (android) where network operations often fail because the network connection might not be immediately available. Therefore I'd like to try the same connection N times before completely failing. Was thinking of something like this:</p>
  
  <pre><code>DefaultHttpClient mHttp = ...;
  
  public HttpResponse runHttpRequest(HttpRequestBase httpRequest) 
      throws IOException
  {
      IOException last = null;
      for (int attempt = 0; attempt &lt; 3; attempt++) {
          try {
              HttpResponse response = mHttpClient.execute(httpRequest);
              int statusCode = response.getStatusLine().getStatusCode();
              if (statusCode == 200) {
                  return response;
              }
          } catch (IOException e) {
              httpRequest.abort();
              last = e;
          }
      }
  
      throw last;
  }
  </code></pre>
  
  <p>I'm mostly worried about the connection being in some state which is invalid on subsequent retries. In other words, do I need to completely recreate 'httpRequest', should I avoid calling httpRequest.abort() in the catch block, and only call it in the final failure?</p>
  
  <p>Thanks</p>