在xml请求中传递用户标识和密码

时间:2016-01-27 13:17:50

标签: json xml vba ms-access msxml

我有一个潜在客户希望通过VBA从网站提取一些数据。我是XML和JSON的新手。

我找到了一个提供以下代码的链接,该代码使用MSXML从该特定网站返回单个项目的数据。

Public Function GetItemSalePrice(item As String) As Double
Dim dblItem As Long
With CreateObject("msxml2.xmlhttp")
    .Open "GET", "http://www.gw2spidy.com/api/v0.9/json/item/" & item, False
    .send
    dblItem = Split(Split(.responsetext, "min_sale_unit_price"":")(1), ",")(0)
    GetItemSalePrice = dblItem / 100
End With
End Function

但是,我的客户想要返回的数据一次最多包含500个记录的页面。他指出了 他希望传递日期范围和页码,类似于以下内容。

https://api.appfigures.com/v2/reviews?client_key=xxxxxxxf&start=2015-01-01&end=2016-01-21&page=1

但是因为这是一个https网站,它需要一个用户名和密码。我可以简单地重新格式化该字符串以包含用户ID和密码吗?或者是否有可以设置用于身份验证的MSXML对象的另一个方法或属性?

客户端表示返回值如下:

{
"total": 140,
"pages": 28,
"this_page": 1,
"reviews": [{
    "author": "DeveloperToDeveloper",
    "title": "Just Spectacular",
    "review": "Finally able to remove the ads! The description is hilarious!! Thanks!!!",
    "original_title": null,
    "original_review": null,
    "stars": "5.00",
    "iso": "US",
    "version": "1.2",
    "date": "2012-09-19T17:05:00",
    "product": 6567539,
    "weight": 0,
    "id": "5561747L7xnbsMRu8UbPvy7A71Dv6A=="
}]
}

但是返回了多条记录,一次多达500条记录。是否有一种有效的方式将该格式的数据读入表格?一次一个或多个记录?我显然可以编写一个文本解析器,但我认为有人可能已经完成了这项工作。

1 个答案:

答案 0 :(得分:0)

感谢鲍勃。如果弄清楚身份验证问题,则会使用弹出对话框输入用户ID和密码,客户端对此感到满意。

考虑到返回字符串的结构,我能够自己解析数据而不会有太多困难。