Vous devez créer un client C# qui envoie des requêtes SOAP à un service Web et reçoit les réponses.
Voici un code extrait qui montre comment y parvenir :
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); } }
Ce code crée une requête Web, définit l'en-tête de l'action SOAP et insère l'enveloppe SOAP dans la requête. Il envoie ensuite la demande et lit la réponse SOAP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!