注意:进一步的研究(以及厚厚的皮肤和大量的咖啡)导致我here,它表明商店无法在URL中接收uid和pwd,我从PHP示例中收集{{3} 3}}传输需要加密。这是我的问题吗?如果是这样,我无法找到任何解决方法。
如果open()命令提示UID& PWD窗口打开,我可以手动输入值。有没有人有任何建议。谢谢!
我正在学习如何使用BigCommerce API,我正在使用VB / XL进行编程,以便能够直接从商店的数据库中的所有字段发布/检索。
我之前从未对此进行编码(虽然我绕过VB OK)并且我被卡住了。我有以下代码:
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”以确保返回的数据不会按建议here缓存,则请求如下所示:
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上关注了一些例子,但我仍然被卡住了。对于VB,BC API站点的示例(实际上没有!)很差。
谢谢
答案 0 :(得分:0)
排序! BC需要这个:
Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", URL_Cat, UID, PWD
xmlHttp.setRequestHeader "Content-Type", "application/json"
xmlHttp.setRequestHeader "Authorization", "Basic " & Base64Encode(UID & ":" & PWD)
xmlHttp.send
我从here获得了Base64Encode代码。希望这有助于某人。