带有MSXML2.ServerXMLHTTP的自定义标头

时间:2016-05-04 13:05:40

标签: excel vba excel-vba serverxmlhttp

我目前正在尝试使用MSXML2.ServerXMLHTTP发送POST http请求。 我需要添加一个自定义标题" 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

我最终得到了#34;错误-2147012746未找到请求的标题" (该消息实际上是翻译的,因为我在计算机上使用了不同的语言。)

然而,我没有在" Microsoft.XMLHTTP"宾语。 我做错了吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

尝试将调用更改为SetRequestHeader以使用字符串文字。当authToken没有设置值时,我重复了这个问题。

从此更改

xhr.setRequestHeader "Auth", authToken

到此

xhr.setRequestHeader "Auth", "testdatahere"