注意:进一步的研究(以及厚脸皮和大量咖啡)将我带到这里,它表明商店无法接收 URL 中的 uid 和 pwd,我从 PHP 示例中收集到传输需要加密。这是我的问题吗?如果是这样,我无法找到有关如何解决此问题的任何信息。
如果 open() 命令提示打开 UID & PWD 窗口并且我可以手动输入值,我会很高兴。有没有人有建议。谢谢!
我正在学习如何使用 BigCommerce API,并且我正在使用 VB/XL 进行编程,以便能够直接从商店数据库中的所有字段中发布/检索。
我以前从未对此进行过编码(尽管我可以绕过 VB)并且我被卡住了。我有以下代码:
Const URL As String = "https://www.myurl.com/api/v2/brands.json"
Public Sub Test()
Dim xmlHttp As Object
Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", URL, False, "myid", "mytoken"
xmlHttp.setRequestHeader "Content-Type", "application/json"
xmlHttp.send
Dim html As MSHTML.HTMLDocument
Set html = New MSHTML.HTMLDocument
html.body.innerHTML = xmlHttp.ResponseText
Range("A1").Value = html.body.innerHTML
End Sub
我得到的是“401”或更准确地说:
[{"status":401,"message":"No credentials were supplied in the request."}]
凭据有效且有效,就像我将 URL 放在浏览器中并提交一样,UID 和 PWD 的弹出窗口出现,一旦我将我正在使用的值放入代码中,生成的 BRANDS 列表就会出现在浏览器。
此外,如果我在 URL 中添加“rand num”以确保返回的数据未按照此处的建议进行缓存,则请求如下所示:
xmlHttp.Open "GET", URL & "&t=" & WorksheetFunction.RandBetween(1, 99), False, `"myid", "mytoken"`
来自 BC 的响应变为:
406</STATUS><MESSAGE>The requested content type is not available.</MESSAGE></ERROR></ERRORS>
我也试过这个(其中 UID 和 PWD 是正确的值):
xmlHttp.Open "GET", URL & "&user=UID" & "&password=PWD", False
我得到:
406</STATUS><MESSAGE>The requested content type is not available.</MESSAGE></ERROR></ERRORS>
谁能帮我理解请。我在 MSDN 上遵循了示例,但我仍然卡住了。BC API 站点在 VB 的示例中很差(实际上没有!)。
谢谢