您好,我想将 xively 与 curl 功能一起使用。我用 nodejs 用我的树莓派来检索我的 arduino 的值。我想知道您是否知道如何将 curl 与 nodejs 一起使用,因为经过几次尝试我都失败了。感谢
2 回答
如果您指的是PHP curl,那么您只需要知道 node.js 没有“curl”(代表“客户端 URL”)。它具有用于发出 http 请求的http
模块request
和get
方法。与 PHP 卷曲具有相同的目的。
您仍然可以使用 执行 shell 脚本child_process.exec
,但这样做可能会冒您将通过 exec 运行的应用程序可能依赖于平台的风险,在这种情况下,它可能在 Windows 上运行,而在 linux 或任何类似问题上不起作用。对于xively,您应该使用 http.request - 这将为您完成所有工作。而且它会更容易,因为从curl
via获取输出child_process.exec
将比 through 困难得多http.request
。
因此,根据此处的文档:https
:
//xively.com/dev/tutorials/curl/ 我已经使用 http.request 替代以查询他们的提要:
var data = JSON.stringify({
title: 'My feed',
version: '1.0.0'
});
var req = http.request({
host: 'api.xively.com',
path: '/v2/feeds',
method: 'POST',
headers: {
'X-ApiKey': 'YOUR_API_KEY_HERE',
'Content-Type': 'application/json',
'Content-Length': data.length
}
}, function(res) {
res.setEncoding('utf8');
console.log('Status Code: ' + res.statusCode);
console.log('Headers:');
console.log(res.headers);
var buffer = '';
res.on('data', function(chunk) {
buffer += chunk;
});
res.on('end', function() {
console.log('complete');
console.log(buffer);
});
});
res.write(data);
res.end();
我在浏览器中写了这段代码,不确定是否完全正确,请尝试一下,如果有什么问题,我会更正上面的代码。
如您所见,它支持 CURL 提供的所有功能,并且从使用角度来看更加灵活和美观。
随意使用它们来进行 HTTP 调用。
但是可以执行脚本外壳吗?
curl是如何在nodejs中使用的?curl --request PUT \ --data-binary '{"datastreams":[ { "id": "1'" , "tags": "'1", "current_value": "12" }]}' \ - -header "X-ApiKey:Q" \ --verbose \ https://api.xively.com/v2/feeds/