Heim >Backend-Entwicklung >C++ >Wie sende und empfange ich SOAP-Anfragen und -Antworten in C#?
Sie müssen einen C#-Client erstellen, der SOAP-Anfragen an einen Webdienst sendet und empfängt die Antworten.
Hier ist ein Codeausschnitt, der zeigt, wie dies erreicht wird:
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); } }
Dieser Code erstellt eine Webanfrage, legt den SOAP-Aktionsheader fest und fügt den SOAP-Umschlag in die Anfrage ein. Anschließend wird die Anfrage gesendet und die SOAP-Antwort gelesen.
Das obige ist der detaillierte Inhalt vonWie sende und empfange ich SOAP-Anfragen und -Antworten in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!