Heim > Backend-Entwicklung > C++ > Wie erstelle ich einen C#-Windows-Dienst zum Senden von SOAP-Anfragen und Empfangen von Antworten?

Wie erstelle ich einen C#-Windows-Dienst zum Senden von SOAP-Anfragen und Empfangen von Antworten?

Susan Sarandon
Freigeben: 2025-01-24 06:41:08
Original
596 Leute haben es durchsucht

How to Create a C# Windows Service to Send SOAP Requests and Receive Responses?

C#-Windows-Dienst: SOAP-Anfrage senden und Antwort erhalten

In diesem Artikel wird beschrieben, wie Sie einen C#-Windows-Dienst erstellen, um SOAP-Anfragen zu senden und Antworten zu empfangen. Diese Methode nutzt die nativen Funktionen von C#, was effizient und praktisch ist.

Der folgende Code bietet eine Alternative:

<code class="language-csharp">using System.Xml;
using System.Net;
using System.IO;

public static void CallWebService()
{
    string url = "http://xxxxxxxxx/Service1.asmx";
    string action = "http://xxxxxxxx/Service1.asmx?op=HelloWorld";

    XmlDocument soapEnvelopeXml = CreateSoapEnvelope();
    HttpWebRequest webRequest = CreateWebRequest(url, action);
    InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);

    // 开始异步调用Web请求
    IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

    // 暂停线程,直到调用完成
    asyncResult.AsyncWaitHandle.WaitOne();

    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 XmlDocument CreateSoapEnvelope()
{
    XmlDocument soapEnvelopeDocument = new XmlDocument();
    soapEnvelopeDocument.LoadXml(@"<envelope http:="" xmlns:soap-env="" xmlns:xsd="" xmlns:xsi=""><body><helloworld http:="" soap-env:encoding xmlns=""><int1 xsd:integer="" xsi:type=""></int1></helloworld></body>
    </envelope>");
    return soapEnvelopeDocument;
}

private static void InsertSoapEnvelopeIntoWebRequest(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest)
{
    using (Stream stream = webRequest.GetRequestStream())
    {
        soapEnvelopeXml.Save(stream);
    }
}</code>
Nach dem Login kopieren

Diese Methode bietet eine flexible und effiziente Möglichkeit, SOAP-Anfragen zu senden und Antworten zu empfangen, ohne auf externe Bibliotheken angewiesen zu sein.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen C#-Windows-Dienst zum Senden von SOAP-Anfragen und Empfangen von Antworten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage