json - 在 POST 请求中使用 VBA 传递 API 密钥和参数
问题描述
我一直在尝试围绕这个 VBA-Web 文档http://vba-tools.github.io/VBA-Web/docs/来解决问题,以便在发布请求中传递 auth_key 和其他参数。我理解编码 auth_key 的概念,如此处所述如何在 VBA 中传递 API 密钥以获取和发布请求?. 但我需要帮助才能在 VBA 中包含以下所有参数。
更新:我能够使下面的 QHarr 代码工作。但是我仍然发现很难在下面使用我自己的 curl 参数。我试过使用 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
这是 API 文档 - https://cloud.ibm.com/apidocs/
功能要求:
curl -X POST \
-H "Content-Type: application/json" \
-u "apikey:{apikey}" \
-d @parameters.json \
"{url}/v1/analyze?version=2019-07-12"
示例参数:
{
"features": {
"semantic_roles": {}
},
"text": "IBM has one of the largest workforces in the world"
}
解决方案
推荐阅读
- python - 重新格式化 sqalchemy 中的行数
- xml - 如何使用 gtk 源视图和 XML 在文本编辑器中为语法高亮添加自定义配色方案
- java - ArchUnit 测试 importOptions DoNotIncludeTests 不起作用
- sql - Oracle PLSQL 游标函数
- python - 正则表达式反转选择
- gradle - debugSymbolLevel SYMBOL_TABLE 不包含本机库的符号?
- mysql - 什么对消除 SQL 上的数据更有效
- python - Pandas 在连接时不必要地对 col 值进行排序
- google-cloud-platform - 配置 Google Cloud Load Balancer 路径规则
- python - 从实例取消绑定方法并绑定到其他实例