Anda perlu mencipta klien C# yang menghantar permintaan SOAP ke perkhidmatan web dan menerima jawapannya.
Inilah coretan kod yang menunjukkan cara untuk mencapai perkara ini:
using System.Net; using System.IO; using System.Xml; public static void CallWebService() { // Replace with your SOAP endpoint URL var url = "http://example.com/service.asmx"; // Replace with your SOAP action var action = "http://example.com/service.asmx?op=HelloWorld"; var soapEnvelope = CreateSoapEnvelope(); var webRequest = CreateWebRequest(url, action); InsertSoapEnvelopeIntoWebRequest(soapEnvelope, webRequest); // Send the SOAP request var asyncResult = webRequest.BeginGetResponse(null, null); asyncResult.AsyncWaitHandle.WaitOne(); // Receive the SOAP response var soapResponse = ""; using (var webResponse = webRequest.EndGetResponse(asyncResult)) { using (var reader = new StreamReader(webResponse.GetResponseStream())) { soapResponse = reader.ReadToEnd(); } } } private static HttpWebRequest CreateWebRequest(string url, string action) { var 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() { var soapEnvelope = new XmlDocument(); soapEnvelope.LoadXml( $@"<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/1999/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/1999/XMLSchema""> <SOAP-ENV:Body> <HelloWorld xmlns=""http://tempuri.org/"" SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/""> <int1 xsi:type=""xsd:integer"">12</int1> <int2 xsi:type=""xsd:integer"">32</int2> </HelloWorld> </SOAP-ENV:Body> </SOAP-ENV:Envelope>"); return soapEnvelope; } private static void InsertSoapEnvelopeIntoWebRequest(XmlDocument soapEnvelope, HttpWebRequest webRequest) { using (var stream = webRequest.GetRequestStream()) { soapEnvelope.Save(stream); } }
Kod ini mencipta permintaan web, menetapkan pengepala tindakan SOAP dan memasukkan sampul SOAP ke dalam permintaan. Ia kemudian menghantar permintaan dan membaca respons SOAP.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar dan Menerima Permintaan dan Respons SOAP dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!