Отправить XML документ более soap - PullRequest
0 голосов
/ 25 февраля 2020

Ниже приведен мой код: метод (SendXmlDocument) примет в качестве параметра документ XML, URL-адрес и действие SOAP и выполнит запрос к веб-службе. Я должен использовать класс HttpClient, чтобы сделать запрос к веб-службе.

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);


    }
}
}

Мой вопрос заключается в том, будет ли отправляться следующий чистый xml документ или нет. Именно этим методом сделать запрос к веб-сервису или нет. Как я узнаю об этом, что запрос был выполнен успешно? Затем мне нужно распечатать ответ на консоли, который возвращается из веб-службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...