如何在 nodejs 中复制此 CURL 请求?
How do I duplicate this CURL request within nodejs?
我正在尝试使用 request-promise 在 nodejs 中复制以下 CURL 请求(最终,我需要使用 promises,所以我更喜欢这种方法):
curl -H "Authorization: Token token=[API Key]" -H "Accept: application/vnd.moonclerk+json;version=1" https://api.moonclerk.com/customers
以下代码片段展示了我的尝试:
var rp = require('request-promise');
var querystring = require('querystring');
//this is what I think is causing me trouble
var bodyHeaders = querystring.stringify({
"Authorization": "Token token=[token taken out in code snippet]",
"Accept": "application/vnd.moonclerk+json;version=1"
});
var options = {
uri: 'https://api.moonclerk.com/customers',
method: 'GET',
body: bodyHeaders
};
var cb = function () {
return function (response) {
console.log("response: ", response);//this should spit out the JSON text I'm looking for
}
}
rp(options).then(cb())
但我在 nodejs 控制台中收到 Possibly unhandled StatusCodeError: 401 - HTTP Token: Access denied.
作为响应。这里有什么问题?
PS -- 请注意,我的 uri 是一个 HTTPS(即,'https://api.moonclerk.com/customers');这是导致问题的原因吗?
您无法在请求中传递 HTTP headers body,服务器无法在那里识别它们。请参阅 https://github.com/request/request#custom-http-headers 以了解请求库的正确用法。
var options = {
// ...
headers: {
"Authorization": "Token token=[token taken out in code snippet]",
"Accept": "application/vnd.moonclerk+json;version=1"
}
});
我正在尝试使用 request-promise 在 nodejs 中复制以下 CURL 请求(最终,我需要使用 promises,所以我更喜欢这种方法):
curl -H "Authorization: Token token=[API Key]" -H "Accept: application/vnd.moonclerk+json;version=1" https://api.moonclerk.com/customers
以下代码片段展示了我的尝试:
var rp = require('request-promise');
var querystring = require('querystring');
//this is what I think is causing me trouble
var bodyHeaders = querystring.stringify({
"Authorization": "Token token=[token taken out in code snippet]",
"Accept": "application/vnd.moonclerk+json;version=1"
});
var options = {
uri: 'https://api.moonclerk.com/customers',
method: 'GET',
body: bodyHeaders
};
var cb = function () {
return function (response) {
console.log("response: ", response);//this should spit out the JSON text I'm looking for
}
}
rp(options).then(cb())
但我在 nodejs 控制台中收到 Possibly unhandled StatusCodeError: 401 - HTTP Token: Access denied.
作为响应。这里有什么问题?
PS -- 请注意,我的 uri 是一个 HTTPS(即,'https://api.moonclerk.com/customers');这是导致问题的原因吗?
您无法在请求中传递 HTTP headers body,服务器无法在那里识别它们。请参阅 https://github.com/request/request#custom-http-headers 以了解请求库的正确用法。
var options = {
// ...
headers: {
"Authorization": "Token token=[token taken out in code snippet]",
"Accept": "application/vnd.moonclerk+json;version=1"
}
});