Sending and receiving SOAP messages

前端 未结 4 1321
一整个雨季
一整个雨季 2021-02-06 08:39

I am writing a web service client in C# and do not want to create and serialize/deserialize objects, but rather send and receive raw XML.

Is this possible in C#?

4条回答
  •  感情败类
    2021-02-06 09:33

    Here is part of an implementation I just got running based on John M Gant's example. It is important to set the content type request header. Plus my request needed credentials.

    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; }
    }
    

提交回复
热议问题