Json 在POST请求中使用VBA传递API密钥和参数

Json 在POST请求中使用VBA传递API密钥和参数,json,excel,vba,api,post,Json,Excel,Vba,Api,Post,为了在post请求中传递auth_密钥和其他参数,我一直在尝试将注意力集中在这个VBA Web文档上。我理解这里解释的对auth_密钥进行编码的概念。但是我需要帮助在VBA中包含下面的所有参数 更新: 我能够使下面的QHarr代码正常工作。但我仍然发现很难使用下面我自己的旋度参数。我尝试过使用EncodeBase64(apikey),但我还没有做到 Public Sub GetResults() Dim data As String, json As Object '< VBE

为了在post请求中传递auth_密钥和其他参数,我一直在尝试将注意力集中在这个VBA Web文档上。我理解这里解释的对auth_密钥进行编码的概念。但是我需要帮助在VBA中包含下面的所有参数

更新: 我能够使下面的QHarr代码正常工作。但我仍然发现很难使用下面我自己的旋度参数。我尝试过使用EncodeBase64(apikey),但我还没有做到

Public Sub GetResults()
    Dim data As String, json As Object '<  VBE > Tools > References > Microsoft Scripting Runtime
    data = "{""domainNames"":[""google.com""]}"
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "POST", "https://api.dev.name.com/v4/domains:checkAvailability", False
        .setRequestHeader "User-Agent", "Mozilla/5.0"
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
        .setRequestHeader "Authorization", "Basic " + _
            EncodeBase64("username" + ":" + "Token")
        .send data
        Set json = JsonConverter.ParseJson(.responseText)
        Dim result As Object
        For Each result In json("results")
            Debug.Print result("domainName")
        Next
    End With
End Sub



Function EncodeBase64(text As String) As String


  Dim arrData() As Byte
  arrData = StrConv(text, vbFromUnicode)

  Dim objXML As MSXML2.DOMDocument60
  Dim objNode As MSXML2.IXMLDOMElement

  Set objXML = New MSXML2.DOMDocument60
  Set objNode = objXML.createElement("b64")

  objNode.DataType = "bin.base64"
  objNode.nodeTypedValue = arrData
  EncodeBase64 = Application.Clean(objNode.text)

  Set objNode = Nothing
  Set objXML = Nothing
End Function
示例参数:

{
  "features": {
    "semantic_roles": {}
  },
  "text": "IBM has one of the largest workforces in the world"
}

您是否尝试过
请求.AddHeader
?您是否被
-H
-u
-d
开关所做的事情卡住了,或者要求某人将
curl
命令转换为VBA代码?您是否也在使用Tim的VBA-JSON代码?它对于处理JSON对象应该很有用。基本上,这里有很多东西需要解包,我们不知道您的代码在哪里,对于在VBA中工作该请求所需要发生的一切。考虑添加你所拥有的任何VBA代码,所以回答者知道你在哪里被准确地粘贴。我添加了VBA代码,在那里我已经尝试过<代码>请求。您是否被
-H
-u
-d
开关所做的事情卡住了,或者要求某人将
curl
命令转换为VBA代码?您是否也在使用Tim的VBA-JSON代码?它对于处理JSON对象应该很有用。基本上,这里有很多东西需要解包,我们不知道您的代码在哪里,对于在VBA中工作该请求所需要发生的一切。考虑添加你所拥有的任何VBA代码,所以回答者知道你到底陷在哪里。我添加了VBA代码,在那里我被卡住了。
{
  "features": {
    "semantic_roles": {}
  },
  "text": "IBM has one of the largest workforces in the world"
}