nodejs的http.resquest和http.get
2015-12-21 21:49
465 查看
最近了解开始了解nodejs。
先说说nodejs的http下的两个方法resquest和get方法;这两个方法指在为向后台发送请求;
首先,引进http模块:
var http = require("http");//引入模块; 调用resquest方法:
第一个参数为请求头选项,既主机名、域名、端口、请求方式、资源路径等等;
第二个参数为请求成功的回调函数;
而get方法和resquest方法唯一的不用是get方法不需要使用end()命令去发送;它会自己发送;
文中请求地址随便写的,可以模仿一个百度搜索的请求,看看返回什么结果。
先说说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()命令去发送;它会自己发送;
文中请求地址随便写的,可以模仿一个百度搜索的请求,看看返回什么结果。
相关文章推荐
- 使用ruby部署工具mina快速部署nodejs应用教程
- Google官方支持的NodeJS访问API,提供后台登录授权
- 浅谈Nodejs观察者模式
- nodejs教程之环境安装及运行
- nodejs中的fiber(纤程)库详解
- 基于NodeJS的前后端分离的思考与实践(五)多终端适配
- 基于NodeJS的前后端分离的思考与实践(二)模版探索
- 我的NodeJs学习小结(一)
- nodejs中实现sleep功能实例
- Nodejs异步回调的优雅处理方法
- Windows系统下使用Sublime搭建nodejs环境
- nodejs实现获取某宝商品分类
- nodejs简单实现中英文翻译
- Node.js插件的正确编写方式
- 使用upstart把nodejs应用封装为系统服务实例
- NodeJS Web应用监听sock文件实例
- Nodejs学习笔记之测试驱动
- Nodejs学习笔记之Stream模块
- 如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
- Nodejs为什么选择javascript为载体语言