首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用用于API的VBA (MS Access)到Neto站点的POST错误

使用用于API的VBA (MS Access)到Neto站点的POST错误
EN

Stack Overflow用户
提问于 2021-09-17 03:21:03
回答 1查看 53关注 0票数 0

我有一个access数据库,我用它来创建一个使用Neto (https://developers.neto.com.au/documentation/engineers/api-documentation)的网站的json。我刚接触过API,但已经研究了几个月,并在理解它的工作原理方面取得了进展。我已经从请求中获得了200状态响应,这将指示标题信息(包括身份验证是正确的),但是与主体有关的错误(我相信)。代码如下:

代码语言:javascript
复制
Dim reader As New XMLHTTP60
Dim username As String, APIkey As String
Dim strJson As String
 
strJson = "{" & _
  "'Filter': {" & _
    "'OrderStatus': 'Pick'," & _
    "'OutputSelector': [" & _
      "'OrderID'," & _
      "'ShippingOption'," & _
    "]," & _
  "}" & _
"}"

username = "xxx"
APIkey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

reader.Open "POST", "https://www.yoursite.co.nz/do/WS/NetoAPI", False 
reader.setRequestHeader "NETOAPI_USERNAME", username
reader.setRequestHeader "NETOAPI_KEY", APIkey 
reader.setRequestHeader "Content-Type", "application/json"
reader.setRequestHeader "Accept", "application/json"
reader.setRequestHeader "NETOAPI_ACTION", "GetOrder"
reader.send strJson

Debug.Print reader.Status

Debug.Print reader.responseText

错误信息:

代码语言:javascript
复制
{"CurrentTime":"2021-09-17 02:42:50","Ack":"Error","Messages":[{"Error":{"Message":"JSON Error","SeverityCode":"Error"},"Warning":{"Message":"Warning","SeverityCode":"Warning","Description":"'\"' expected, at character offset 1 (before \"'Filter': {'OrderSta...\")"}}]}

最初,我只是试图检索2条数据(OrderID和ShippingOption),用于任何具有Pick状态的订单。我试着用"“替换所有的‘,就像我在其他帖子中看到的一样,还有一些其他的变体,但是没有运气。

任何帮助都将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-17 04:30:20

  1. 在JSON

中使用单引号而不是双引号

  1. Filter的值是一个包含[ ]的集合,所以我相信您也需要包装Pick (尽管只有一个值)。

  1. 当它是最后一个值时,在ShippingOption之后有一个额外的,,所以删除它。

试一试:

代码语言:javascript
复制
strJSON = "{" & _
  """Filter"": {" & _
    """OrderStatus"": [""Pick""]," & _
    """OutputSelector"": [" & _
      """OrderID""," & _
      """ShippingOption""" & _
    "]" & _
  "}" & _
"}"

上面将生成下面的JSON:

代码语言:javascript
复制
{"Filter": {"OrderStatus": ["Pick"],"OutputSelector": ["OrderID","ShippingOption"]}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69217378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档