title: How to get error information when HttpWebRequest.GetResponse() fails
body: <p>I am initiating an HttpWebRequest and then retrieving it's response.  Occasionally, I get a 500 (or at least 5##) error, but no description.  I have control over both endpoints and would like the receiving end to get a little bit more information.  For example, I would like to pass the exception message from server to client.  Is this possible using HttpWebRequest and HttpWebResponse?</p>
  
  <p>Code:</p>
  
  <pre><code>try
  {
      HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
      webRequest.Method = WebRequestMethods.Http.Get;
      webRequest.Credentials = new NetworkCredential(Username, Password);
      webRequest.ContentType = "application/x-www-form-urlencoded";
      using(HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
      {
          if(response.StatusCode == HttpStatusCode.OK)
          {
              // Do stuff with response.GetResponseStream();
          }
      }
  }
  catch(Exception ex)
  {
      ShowError(ex);
      // if the server returns a 500 error than the webRequest.GetResponse() method
      // throws an exception and all I get is "The remote server returned an error: (500)."
  }
  </code></pre>
  
  <p>Any help with this would be much appreciated.</p>