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:
Post a Comment