Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencipta Perkhidmatan Windows C# untuk Menghantar Permintaan SOAP dan Menerima Respons?

Bagaimana untuk Mencipta Perkhidmatan Windows C# untuk Menghantar Permintaan SOAP dan Menerima Respons?

Susan Sarandon
Lepaskan: 2025-01-24 06:41:08
asal
597 orang telah melayarinya

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

Perkhidmatan Windows C#: Hantar permintaan SOAP dan terima respons

Artikel ini menerangkan cara mencipta perkhidmatan C# Windows untuk menghantar permintaan SOAP dan menerima respons. Kaedah ini menggunakan fungsi asli C#, yang cekap dan mudah.

Kod berikut menyediakan alternatif:

<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>
Salin selepas log masuk

Kaedah ini menyediakan cara yang fleksibel dan cekap untuk menghantar permintaan SOAP dan menerima respons tanpa bergantung pada perpustakaan luaran.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Perkhidmatan Windows C# untuk Menghantar Permintaan SOAP dan Menerima Respons?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan