title: How to post JSON to a server using C#?
body: <p>Here's the code I'm using:</p>
  
  <pre><code>// create a request
  HttpWebRequest request = (HttpWebRequest)
  WebRequest.Create(url); request.KeepAlive = false;
  request.ProtocolVersion = HttpVersion.Version10;
  request.Method = "POST";
  
  
  // turn our request string into a byte stream
  byte[] postBytes = Encoding.UTF8.GetBytes(json);
  
  // this is important - make sure you specify type this way
  request.ContentType = "application/json; charset=UTF-8";
  request.Accept = "application/json";
  request.ContentLength = postBytes.Length;
  request.CookieContainer = Cookies;
  request.UserAgent = currentUserAgent;
  Stream requestStream = request.GetRequestStream();
  
  // now send it
  requestStream.Write(postBytes, 0, postBytes.Length);
  requestStream.Close();
  
  // grab te response and print it out to the console along with the status code
  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  string result;
  using (StreamReader rdr = new StreamReader(response.GetResponseStream()))
  {
      result = rdr.ReadToEnd();
  }
  
  return result;
  </code></pre>
  
  <p>When I'm running this, I'm always getting 500 internal server error.</p>
  
  <p>What am I doing wrong?</p>