Excel+;VBA和x2B;JSON+;提出请求
我不完全理解如何正确打包需要发送到API的类别IDExcel+;VBA和x2B;JSON+;提出请求,json,excel,vba,Json,Excel,Vba,我不完全理解如何正确打包需要发送到API的类别ID Sub testing() Dim sc As Object Set sc = CreateObject("ScriptControl") sc.Language = "JScript" Dim strURL As String: strURL = "https://api-sandbox.site.com/v1/customers/111111?api_key=xxxxxxxxxxxxx" Dim strRequest
Sub testing()
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
Dim strURL As String: strURL = "https://api-sandbox.site.com/v1/customers/111111?api_key=xxxxxxxxxxxxx"
Dim strRequest
Dim XMLhttp: Set XMLhttp = CreateObject("msxml2.xmlhttp")
Dim response As String
XMLhttp.Open "PUT", strURL, False
XMLhttp.setrequestheader "Content-Type", "application/json;charset=UTF-8"
XMLhttp.send strRequest
response = XMLhttp.responseText
End Sub
目标:
获取一组类别ID并将其推送到特定的客户端。我目前的重点是了解如何在单个案例中做到这一点。如往常一样,我们非常感谢您提供的任何信息
https://api-sandbox.site.com/v1/customers/clientID?api_key=xxxxxxxxxxxxx
API使用JSON发送/接收。类别的格式(据我所知)应为:
{"categoryIDs" : [ 1, 2096, 2008, 2009 ]}
API中的示例会话:
PUT /v1/customers/2938293/locations/39483?api_key=xxxxxxxxxxxxx HTTP/1.1
Host: api.site.com
Content-Type: application/json;charset=UTF-8
{
"zip": "92886",
"phone": "7147147147",
"countryCode": "US",
"state": "CA",
"locationName": "Backpack Brigade",
"isPhoneTracked": false,
"specialOfferIsDeal": false,
"specialOffer": "Check out our new Summer Backpacks!",
"folderId": "0",
"city": "Yorba Linda",
"id": "123",
"customerId": "140149",
"categoryIds": [
90,
833
],
"suppressAddress": false,
"address": "4345 Bastanchury Road",
"websiteUrl": "http://backpackbrigade.com/",
"hours":"2:12:00:PM:5:00:PM,3:12:00:PM:5:00:PM,4:12:00:PM:5:00:PM,6:12:00:PM:5:00:PM,7:12:00:PM:5:00:PM",
"additionalHoursText": "Sunday by Appointment",
"description": "Best Backpack Store in Southern California!",
"twitterHandle": "backpackbrigade",
"logo": {
"url": "http://cms.site.com/cms/328812732-backpack.png",
"description": "Picture of a backpack"
},
"displayLatitude": 33.8991997,
"displayLongitude": -117.8437043,
"emails":["admin@backpackbrigade.com"]
}
我不能肯定地说,但我提供的代码主要用于处理响应,似乎我没有打包任何东西来发送PUT
请求
我发送的类别ID是否需要打包为
对象
或字符串
可以吗 对于希望使用JSON和EXCEL的任何人,我强烈推荐将此网站作为资源:
Bruce Mcpherson在这里组合的模块使put请求、JSON API调用的排序和保存数据变得简单而直接
我希望这能帮助任何和我处境相同的人 你的问题有点宽泛——如果你有一个具体的问题要解决,最好直接解决细节,而不是寻求一般性的帮助。PUT只是另一个HTTP动词,所以您看到的(例如)使用XMLHTTP发布数据的任何代码示例都可能被替换为POST的子项PUT重新使用。你可能找不到“入门级”信息的一个原因是,这不是一个真正的“入门级”任务。我知道这是一个广泛的任务,但你给出的这个小提示很有帮助!接受了你的建议@TimWilliams。我现在有了一个起点。当我添加
MsgBox(response)
时,我得到一个错误,它表明:{“errors”:[{“message”:“我们无法反序列化您的json请求:值必须是JSONObject(但是是一个类java.lang.String)”}}}}。您是否省略了填充strequest
的部分?不幸的是,我没有忽略填充strequest
的部分。我不确定如何构造JSON以将其发送到API。