ServerXMLHTTP wird an den Inhaltstyp @ angehän

Ich stelle eine serverseitige HTTP-Anfrage mit einem JSON-Body in VBScript wie folgt:

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

Der Dienst, den ich anrufe, erwartet, dass der Inhaltstyp @ isapplication/json natürlich. Wie Sie sehen können, setze ich den obigen Anforderungsheader als solchen.

Das Problem ist, dassMSXML2.ServerXMLHTTP hängt einen Zeichensatz an den Inhaltstyp an (ich kann keine Dokumentation für dieses Verhalten finden), wobei der Standard UTF-8 ist. Am Ende wird der Header also als @ gesendeapplication/json; Charset=UTF-8, was dem Webservice nicht gefällt.

Die seltsame Sache ist, dass ich mit @ explizit einen Zeichensatz setzen kansetRequestHeader, sogar eine unsinnige, undMSXML2.ServerXMLHTTP lässt dann den Header in Ruhe. Beispielsweise.

oXMLHttp.setRequestHeader "Content-Type", "application/json; Charset=FOO"

Works gut und bleibt unberührt. Wie kann ich aufhörenMSXML2.ServerXMLHTTP vom Ändern des Inhaltstyps?

EDIT: Ich habe festgestellt, dass MSXML2.ServerXMLHTTP 6.0 dieses Verhalten zumindest standardmäßig nicht aufweist. Aber ich würde immer noch gerne sehen, ob es eine Lösung dafür gibt, da ich nicht sicher bin, ob diese verfügbar sein wird, wo diese Anwendung installiert werden muss.

Set oXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

Antworten auf die Frage(2)

Ihre Antwort auf die Frage