ServerXMLHTTP добавление к типу контента
Я делаю HTTP-запрос на стороне сервера с телом JSON в VBScript, как это:
Set oXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
oXMLHttp.open cMethod, cAPIURL, False, cUser, cPassword
oXMLHttp.setRequestHeader "Content-Type", "application/json"
oXMLHttp.send(cData)
cReturn = oXMLHttp.responseText
Set oXMLHttp = Nothing
Служба, которую я вызываю, ожидает, что тип контента будетapplication/json
естественно. Как видите, я устанавливаю заголовок запроса выше как таковой.
Проблема в том, чтоMSXML2.ServerXMLHTTP
добавит кодировку ко всему, для чего я установил тип контента (я не могу найти документацию для этого поведения), по умолчанию будет UTF-8. Таким образом, в конце заголовок отправляется какapplication/json; Charset=UTF-8
, который веб-сервис не любит.
Странно, я могу явно установить кодировку сsetRequestHeader
даже бессмысленный, иMSXML2.ServerXMLHTTP
тогда оставлю заголовок в покое. Например..
oXMLHttp.setRequestHeader "Content-Type", "application/json; Charset=FOO"
Работает нормально и остается нетронутым. Как я могу остановитьсяMSXML2.ServerXMLHTTP
от изменения типа контента?
РЕДАКТИРОВАТЬ: я обнаружил, что MSXML2.ServerXMLHTTP 6.0 не демонстрирует это поведение, по крайней мере по умолчанию. Но я все еще хотел бы посмотреть, есть ли решение для этого, так как я не уверен, будет ли оно доступно там, где необходимо установить это приложение.
Set oXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")