System.Net.HttpWebRequest request; System.IO.Stream stream; System.Exception sysEx; request = System.Net.WebRequest::Create("URL") as System.Net.HttpWebRequest; request.Method = 'POST'; request.ContentType = 'application/json'; // Set the request headers System.Net.WebHeaderCollection headerCollection = request.Headers; headerCollection.Set('Name', 'Value'); var utf8 = System.Text.Encoding::get_UTF8(); // Set the request body var byteArrayPayload = utf8.GetBytes("{\"key1\":\"value1\",\"key2\":\"value2\"}"); try { // send out the payload using (System.IO.Stream dataStream = request.GetRequestStream()) { dataStream.Write(byteArrayPayload, 0, byteArrayPayload.Length); } // request.GetResponse() may already result in an error if the request was e.g. a Bad Request(Status Code 400). This should be handled upstream via our global error handling. using (System.Net.HttpWebResponse response = request.GetResponse() as System.Net.HttpWebResponse) { stream = response.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(stream); str responseBody = reader.ReadToEnd(); } } catch (sysEx) { throw; }