我目前正在尝试使用 MSXML2.ServerXMLHTTP 发送 POST http 请求。
我需要添加一个自定义 header “Auth”,以便我的请求获得授权,但它似乎不起作用。
这是我的帖子功能的代码:
Function post(path As String, authToken As String, postData As String) As String
Dim xhr As Object
Dim message As String
On Error GoTo error:
Set xhr = CreateObject("MSXML2.ServerXMLHTTP")
xhr.Open "POST", path, False
xhr.setRequestHeader "Content-Type", "application/json"
xhr.setRequestHeader "Auth", authToken
xhr.send postData
If xhr.Status = 200 Then
message = xhr.responseText
Else
message = xhr.Status & ": " & xhr.statusText
End If
Set xhr = Nothing
post = message
error:
Debug.Print "Error " & Err.Number; ":" & Err.Description
End Function
最后我得到“错误 -2147012746 未找到请求的 header ”(该消息实际上已被翻译,因为我在计算机上使用了不同的语言)。
但是,“Microsoft.XMLHTTP”对象没有这个问题。
难道我做错了什么 ?
感谢您的时间。
最佳答案
尝试更改对 SetRequestHeader 的调用以使用字符串文字。我在 authToken
时重复了这个问题没有设置值。
从此改变
xhr.setRequestHeader "Auth", authToken
对此
xhr.setRequestHeader "Auth", "testdatahere"
关于vba - 带有 MSXML2.ServerXMLHTTP 的自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028710/