在Node.js中,除了使用子进程进行 CURL 调用之外,还有什么方法可以对远程服务器REST API进行CURL调用并获取返回数据?
我还需要设置远程REST调用的请求头,以及GET (或POST)中的查询字符串。
我找到了这个:http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs
但是它没有显示任何POST查询字符串的方法。
发布于 2011-04-13 09:11:10
var options = {
host: url,
port: 80,
path: '/resource?id=foo&bar=baz',
method: 'POST'
};
http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}).end();
发布于 2014-09-01 23:53:42
使用Request — Simplified HTTP client怎么样?
编辑2020年2月:请求已被弃用,因此您可能不应再使用它。
下面是一个GET:
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body) // Print the google web page.
}
})
OP也想要一个帖子:
request.post('http://service.com/upload', {form:{key:'value'}})
发布于 2016-10-05 08:47:44
我使用node-fetch是因为它使用熟悉的fetch() API (如果您是web开发人员)。fetch()是从浏览器发出任意HTTP请求的新方法。
是的,我知道这是一个节点js的问题,但我们不想减少API开发人员必须记忆和理解的数量,并提高我们的javascript代码的可重用性吗?Fetch is a standard,那么我们在这个问题上如何?
fetch()
的另一个好处是它返回一个javascript Promise,所以你可以像这样写异步代码:
let fetch = require('node-fetch');
fetch('http://localhost', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: '{}'
}).then(response => {
return response.json();
}).catch(err => {console.log(err);});
获取超级种子XMLHTTPRequest。这是一些more info。
https://stackoverflow.com/questions/5643321
复制相似问题