REST与VB EXCEL中的BigCommerce交互

时间:2013-10-09 05:34:42

标签: vb.net rest bigcommerce

注意:进一步的研究(以及厚厚的皮肤和大量的咖啡)导致我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站点的示例(实际上没有!)很差。

谢谢

1 个答案:

答案 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代码。希望这有助于某人。

相关问题