Node.js的request模块

来源:互联网 发布:好看的泰国电影 知乎 编辑:程序博客网 时间:2024/05/18 01:36

request模块让http请求变的更加简单。(作为客户端,去请求、抓取另一个网站的信息)
request的GitHub主页: https://github.com/request/request

最简单的一个示例:

var request = require('request'); request('http://www.google.com', function (error, response, body) {    if (!error && response.statusCode == 200) {        console.log(body);    }})

抓取网上的图片,保存到本地

var fs=require('fs');var request=require('request');request('http://n.sinaimg.cn/news/transform/20170211/F57R-fyamvns4810245.jpg').pipe(fs.createWriteStream('doodle.png'));

将本地的file.json文件上传到http://mysite.com/obj.json

fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json'))

http://google.com/img.png上传到http://mysite.com/img.png

request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))

表单提交到http://service.com/upload

var r = request.post('http://service.com/upload')var form = r.form()form.append('my_field', 'my_value')form.append('my_buffer', new Buffer([1, 2, 3]))form.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png'))form.append('remote_file', request('http://google.com/doodle.png'))

HTTP认证

request.get('http://some.server.com/').auth('username', 'password', false);

定制HTTP header

//User-Agent之类可以在options对象中设置。var options = { url: 'https://api.github.com/repos/mikeal/request', headers: { 'User-Agent': 'request' }};function callback(error, response, body) { if (!error && response.statusCode == 200) { var info = JSON.parse(body); console.log(info.stargazers_count +"Stars"); console.log(info.forks_count +"Forks");}}request(options, callback);
1 0