Client om SOAP-verzoek te verzenden en antwoord te ontvangen
Ik probeer een C# client te maken (zal worden ontwikkeld als een Windows service) die SOAP requests naar een web service stuurt (en de resultaten krijgt).
Uit deze vraag zag ik deze code:
protected virtual WebRequest CreateRequest(ISoapMessage soapMessage)
{
var wr = WebRequest.Create(soapMessage.Uri);
wr.ContentType = "text/xml;charset=utf-8";
wr.ContentLength = soapMessage.ContentXml.Length;
wr.Headers.Add("SOAPAction", soapMessage.SoapAction);
wr.Credentials = soapMessage.Credentials;
wr.Method = "POST";
wr.GetRequestStream().Write(Encoding.UTF8.GetBytes(soapMessage.ContentXml), 0, soapMessage.ContentXml.Length);
return wr;
}
public interface ISoapMessage
{
string Uri { get; }
string ContentXml { get; }
string SoapAction { get; }
ICredentials Credentials { get; }
}
Ziet er mooi uit, weet iemand hoe je dit moet gebruiken en of dit de beste werkwijze is?
152
3
Ik gebruik normaal een andere manier om hetzelfde te doen
Ik heb deze eenvoudige oplossing hier:
SOAP-verzoek verzenden en antwoord ontvangen in .NET 4.0 C# zonder de WSDL of proxyklassen te gebruiken:
De beste praktijk is om naar de WSDL te verwijzen en deze te gebruiken als een webservicereferentie. Het'is gemakkelijker en werkt beter, maar als je de WSDL niet hebt, zijn de XSD definities een goed stuk code.