title: Xamarin Android httpwebrequest, Cannot access a disposed object
body: <p>I have an android mobile app , and i want to send webrequest to server to post some data, but before posting the data i send an http get request to get some data, and then sending post request , 
  first i receive get successfully but when i send the post request it throws bellow exception on this line of my code <code>requestStream.Write(bytes, 0, bytes.Length);</code></p>
  
  <p>the exception is :</p>
  
  <blockquote>
    <p>System.ObjectDisposedException: Cannot access a disposed object.
    Object name: 'System.Net.Sockets.NetworkStream'.</p>
  </blockquote>
  
  <p>and here is my get and post request code
  GET:</p>
  
  <pre><code>public void GetTokenInfo()
          {
  
              try
              {
                  var uri = new Uri(string.Format(_host + "webserver/SesTokInfo", string.Empty));
                  var webRequest = WebRequest.Create(uri);
                  using (var response = webRequest.GetResponse() as HttpWebResponse)
                  {
                      using (var requestStream = response.GetResponseStream())
                      {
                          using (var reader = new StreamReader(requestStream))
                          {
                              var content = reader.ReadToEnd();
                              XmlDocument xDocument = new XmlDocument();
                              xDocument.LoadXml(content);
                              XmlElement root = xDocument.DocumentElement;
                              if (IsResponseReturned(root))
                              {
                                  GlobalConfig.SessionId = root.GetElementsByTagName("SesInfo")[0].InnerText;
                                  GlobalConfig.Token = root.GetElementsByTagName("TokInfo")[0].InnerText;
  
                              }
                          }
                      }
                  }
              }
              catch (Exception exception)
              {
                  Debug.WriteLine(exception);
              }
          }
  </code></pre>
  
  <p>with this code i get receive my result without any problem, and here is my POST:</p>
  
  <pre><code> public WebResponse PostData(string body, string url)
          {
              WebResponse webResponse = null;
              try
              {
                  var uri = new Uri(string.Format(_host + url, string.Empty));
                  var webRequest = (HttpWebRequest)WebRequest.Create(uri);
                  webRequest.Headers.Add("Cookie",
                      GlobalConfig.SessionId);
                  webRequest.Headers.Add("_RequestVerificationToken", GlobalConfig.Token);
                  webRequest.Method = "POST";
                  webRequest.ContentType = "application/xml";
                  byte[] bytes = Encoding.UTF8.GetBytes(body);
                  webRequest.ContentLength = bytes.Length;
                  Stream requestStream = webRequest.GetRequestStream();
                  requestStream.Write(bytes, 0, bytes.Length);
                  webResponse = webRequest.GetResponse();
              }
              catch (Exception exception)
              {
                  Console.WriteLine(exception);
              }
              return webResponse;
          }
  </code></pre>
  
  <p>i have searched and tried ways but i did not get the solution , and plus when i comment the first function, and only run the second function it will work fine but when i run the first and then the second it throws the exception , does anything belong to dispose the stream and web response from first code?
  i think using statement is already disposes them.</p>
  
  <p>any help appreciated.</p>