65.9K
CodeProject is changing. Read more.
Home

Invoke a POST method with XML Request message in C#

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1 vote)

Apr 24, 2014

CPOL
viewsIcon

61753

This tip explains how to call a web method with a POST request using xml request messaage in C#.

Hi,

To invoke a POST method located at a particular URL with an XML request message, we need to follow the below steps:

  1. Create a request to the url
  2. Put required request headers
  3. Convert the request XML message to a stream (or bytes)
  4. Write the stream of bytes (our request xml) to the request stream
  5. Get the response and read the response as a string
This looks much easier when seen in code. Keep reading…..

So, the code for the above steps looks something like this:

        string xmlMessage = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n" +
            "construct your xml request message as required by that method along with parameters";
            string url = "http://XXXX.YYYY/ZZZZ/ABCD.aspx";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            byte[] requestInFormOfBytes = System.Text.Encoding.ASCII.GetBytes(xmlMessage);
            request.Method = "POST";
            request.ContentType = "text/xml;charset=utf-8";
            request.ContentLength = requestInFormOfBytes.Length;
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(requestBytes, 0, requestInFormOfBytes.Length);
            requestStream.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader respStream = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);
            string receivedResponse = respStream.ReadToEnd();
            Console.WriteLine(receivedResponse);
            respStream.Close();
            response.Close(); 
  

If the xmlMessage is formed correctly, then you should be getting the expected response from the web method located at the URL.

Hope this helps!