我正在学习使用API。我试图像api一样打电话:
curl -X POST https://api.locu.com/v2/venue/search -d '{
"api_key" : "f165c0e560d0700288c2f70cf6b26e0c2de0348f",
"fields" : [ "name", "location", "contact" ],
"venue_queries" : [
{
"name" : "bistro central parc"
}
]
}'
这适用于curl,但我想在没有cURL的情况下进行调用。我将使用来自节点的请求来执行此操作,但是现在我只想使用邮递员进行调用。我试过了:
https://api.locu.com/v2/venue/search?api_key={myAPIKey}&fields=["name","location","contact"]&venue_queries=[{name="bistro%20central%20parc"}]
但是我不允许使用405方法。我显然是以错误的方式看待这个。这不是格式化http请求的正确方法吗?
在javascript中看起来像:
var request = require('request');
request('https://api.locu.com/v2/venue/search?api_key={myAPIKey}&fields=["name","location","contact"]&venue_queries=[{name="bistro%20central%20parc"}]', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})
或者是否有更好的方法来构建选项?
答案 0 :(得分:2)
你javascript的请求是在GET方法中而不是帖子。你可以尝试如下:
如果邮递员是您想要的主要方法,那么这应该是您想要的。如果您想以javascript
(或nodejs
)的形式以编程方式发送请求,那么您应该处理您已采取的请求方法。
答案 1 :(得分:1)
当然,请看一下你可以传递的qs对象的文档:
qs - 包含要附加到uri的查询字符串值的对象
var request = require('request');
var queryObject = { field1:'test1', field2:'test2' };
request.get({url: url, qs: queryObject})
.then(function(response){
// do stuff
})