我有一个access数据库,我用它来创建一个使用Neto (https://developers.neto.com.au/documentation/engineers/api-documentation)的网站的json。我刚接触过API,但已经研究了几个月,并在理解它的工作原理方面取得了进展。我已经从请求中获得了200状态响应,这将指示标题信息(包括身份验证是正确的),但是与主体有关的错误(我相信)。代码如下:
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错误信息:
{"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状态的订单。我试着用"“替换所有的‘,就像我在其他帖子中看到的一样,还有一些其他的变体,但是没有运气。
任何帮助都将不胜感激。谢谢
发布于 2021-09-17 04:30:20
中使用单引号而不是双引号
Filter的值是一个包含[ ]的集合,所以我相信您也需要包装Pick (尽管只有一个值)。ShippingOption之后有一个额外的,,所以删除它。试一试:
strJSON = "{" & _
"""Filter"": {" & _
"""OrderStatus"": [""Pick""]," & _
"""OutputSelector"": [" & _
"""OrderID""," & _
"""ShippingOption""" & _
"]" & _
"}" & _
"}"上面将生成下面的JSON:
{"Filter": {"OrderStatus": ["Pick"],"OutputSelector": ["OrderID","ShippingOption"]}}https://stackoverflow.com/questions/69217378
复制相似问题