title: Using Statement with Stream, StreamReader and WebResponse
body: <p>I have been noticing what seems to be memory leaks in some of my services, and I am trying to make sure that I am handling resources properly. I have the following code used to send an external Http request. I am not sure if I am missing anything, or if there are too many <strong>using</strong> statements.</p>
  
  <pre><code>        string str = string.Empty;
          WebRequest request = WebRequest.Create(paramBuilder.ToString());
          request.ContentLength = 0;
          request.Method = "GET";
          using (WebResponse response = request.GetResponse())
          {
              using (Stream stream = response.GetResponseStream())
              {
                  using (StreamReader reader = new StreamReader(stream))
                  {
                      str = reader.ReadToEnd();
  
                      reader.Close();
  
                      return str;
                  }
              }
          }
      }
  </code></pre>