1

注意:进一步的研究(以及厚脸皮和大量咖啡)将我带到这里,它表明商店无法接收 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 的示例中很差(实际上没有!)。

谢谢

4

1 回答 1

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

我从这里得到了 Base64Encode 代码。希望这可以帮助某人。

于 2013-10-10T02:56:09.507 回答