Fork me on GitHub

nodejs的request模块

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

 

posted @ 2017-11-03 09:34  cosyer  阅读(663)  评论(0编辑  收藏  举报