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);