Wednesday, November 10, 2021

Thiết lập ContentType cho Web service Client

 Khi gọi WSDL bằng Web Service client (SoapHttpClientProtocol), nếu gặp lỗi Client found response content type of 'text/xml;charset=utf-8', but expected 'text/xml' là do ContentType mặc định của response là text/xml nhưng response trả về từ đối tác là text/xml;charset=utf-8.

Để khắc phục, trong class service kế thừa từ SoapHttpClientProtocol, bổ sung override hàm GetWriterForMessage để có thể gán lại ContentType cho SoapMessage.


public partial class PartnerAPI : System.Web.Services.Protocols.SoapHttpClientProtocol 

{
    protected override System.Xml.XmlWriter GetWriterForMessage(SoapClientMessage message, int bufferSize)

        {

            message.ContentType = "text/xml;charset=utf-8";

            return base.GetWriterForMessage(message, bufferSize);

        }

}

No comments: