您的位置:首页 > 理论基础 > 计算机网络

nodejs的http.resquest和http.get

2015-12-21 21:49 465 查看
       最近了解开始了解nodejs。

       先说说nodejs的http下的两个方法resquest和get方法;这两个方法指在为向后台发送请求;

       首先,引进http模块:

var http = require("http");//引入模块;      调用resquest方法:


http.request(options[, callback])

     第一个参数为请求头选项,既主机名、域名、端口、请求方式、资源路径等等;
var options = {
hostname: "www.baidu.com",
port: 80,
path: "/course/documment",
method: "post",
headers: {
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.8',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Content-Length': queryS.length,
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie': 'PHPSESSID=6hctahvmrcfg0oea9nmcfrffd4; imooc_uuid=c753f7aa-b801-4975-b9aa-7d6bd3efc271; imooc_isnew_ct=1449740461; IMCDNS=0; loginstate=1; apsid=UyYmUwZjRhNWViNTYxNmU4OGVmYzQ5MDhmMjQ4MzYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzQ1ODExAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0b25nd2FuZ3l1YW5AMTYzLmNvbQAAAAAAAAAAAAAAAGYzMGJhMWVjNzNjZjk2ZGYwMzJkZTU0ODQ3YTdkNmZk%2BWlqVvlpalY%3DZG; last_login_username=tongwangyuan%40163.com; jwplayer.volume=80; jwplayer.qualityLabel=é«æ¸; Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=1450092853,1450144785,1450181180,1450228666; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1450676378; imooc_isnew=2; cvde=56725519b7999-209',
'Host': 'www.imooc.com',
'Origin': 'http://www.imooc.com',
'Pragma': 'no-cache',
'Referer': 'http://www.imooc.com/video/8837',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
}
如上是一个完整的options选项;
         第二个参数为请求成功的回调函数;
var res = http.request(options, function (res) {
console.log(res.statusCode);
console.log(res.headers);
res.on("data", function (data) {
console.log(Buffer.isBuffer(data));
console.log(typeof data);
});
res.on("end", function () {
console.log("发送结束");
});
res.on("error", function () {
console.log("error");
});
})
我们可以在回调函数里对请求到的数据进行操作;最后write进去请求的内容,然后发送:
var queryS = queryString.stringify({
content: "不错啊",
cid: 8837
});
res.write(queryS);
res.end();
用node命令启用该文件,我这里返回302,没有权限访问;

而get方法和resquest方法唯一的不用是get方法不需要使用end()命令去发送;它会自己发送;

文中请求地址随便写的,可以模仿一个百度搜索的请求,看看返回什么结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nodejs http get resqest