0

Following is my code: Method(SendXmlDocument) will take in as parameter an XML document, URL, and the SOAP action and make a request to a web service. I have to use HttpClient class to make the request to the web service.

using System;
using System.Net;
using System.Threading.Tasks;
using System.Xml;
using System.IO;

namespace HttpClientStatus
{


class WebServiceClient
{
    public void SendXmlDocument(XmlDocument fi , string URL , string action)
    {
        XmlDocument soapEnvelopeXml = fi;
        HttpWebRequest webRequest = CreateWebRequest(URL, action);
        InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);

        IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

        asyncResult.AsyncWaitHandle.WaitOne();

        // get the response from the completed web request.
        string soapResult;
        using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult))
        {
            using (StreamReader rd = new StreamReader(webResponse.GetResponseStream()))
            {
                soapResult = rd.ReadToEnd();
            }
            Console.Write(soapResult);
        }
    }

    private static HttpWebRequest CreateWebRequest(string url, string action)
    {
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
        webRequest.Headers.Add("SOAPAction", action);
        webRequest.ContentType = "text/xml;charset=\"utf-8\"";
        webRequest.Accept = "text/xml";
        webRequest.Method = "POST";
        return webRequest;
    }

    private static void InsertSoapEnvelopeIntoWebRequest(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest)
    {
        using (Stream stream = webRequest.GetRequestStream())
        {
            soapEnvelopeXml.Save(stream);
        }
    }

    }


   class Program
{

    static void Main(string[] args)
    {
        var _u = "http://xxxxxxxxx/Service1.asmx";
        var _a = "http://xxxxxxxxx/Service1.asmx/action";
        XmlDocument d = new XmlDocument();
        d.Load("C://Users//gmzmdz//Desktop//course.xml");
        WebServiceClient ob = new WebServiceClient();
        ob.SendXmlDocument(d, _u, _a);


    }
}
}

My Question is that following pure xml document will be sent or not. That this method make a request to web service or not. How do I will know about it that request has been made successful? Then, I have to print the response on the console that comes back from the web service.

0 Answers0