Когда вы передаете XML DOM или метод отправки, Content-Type всегда устанавливается на "text / xml".
Если вы хотите управлять типом контента, вы должны передать строку. Не беспокойтесь о загрузке строки XML в DOM только для вызова свойства xml, поскольку это может изменить содержимое объявления xml. Кстати, как выглядит объявление xml в строке XML, и уверены ли вы, что XML верен? Кодировка в объявлении xml, если она присутствует, должна содержать «UTF-8».
Не отправлять заголовок CharSet
это ничего не значит, CharSet является атрибутом заголовка Content-Type.
Не используйте XMLHTTP из ASP, это небезопасно.
Следовательно, ваш код должен выглядеть следующим образом: -
strXmlToSend = "<some valid xml>"
webserviceurl = "http://webservice.com"
webserviceSOAPActionNameSpace = "avalidnamespace"
Set objRequest = Server.Createobject("MSXML2.ServerXMLHTTP.3.0")
objRequest.open "POST", webserviceurl, False
objRequest.setRequestHeader "Content-Type", "application/soap+xml; charset=UTF-8"
objRequest.setRequestHeader "action", webserviceSOAPActionNameSpace & "GetEstimate"
objRequest.setRequestHeader "SOAPAction", webserviceSOAPActionNameSpace & "GetEstimate"
objRequest.send strXmlToSend
Не уверен насчет этого заголовка "action", либо он мне кажется излишним. Возможно, это все равно будет неудачным, но больше не должно жаловаться на заголовок Content-Type.