node.js学习笔记之HTTP客户端
来源:互联网 发布:ipad提示无法加入网络 编辑:程序博客网 时间:2024/06/05 17:06
/*http客户端*//** 1、在HTTP模块中,可以使用request方法向其他网站请求数据,使用方法如下* var req = http.request(options,callback)* options是一个对象或者字符串,用于指定目标的UrL地址* callback函数为 function(response){* //response:可以利用该对象来读取相应流参数* }*2、使用request方法后,可以用http.ClientRequest对象的write对象向目标网站发送数据* request.write(chunk,[encoding])* 其中chunk用于指定发送的内容,encoding指定如何编码字符串*3、 可以用http.ClientRequest对象的end方法来结束本次请求* request.end([chunk],[encoding]);*4、可以用http.ClientRequest对象的abort方法来终止请求* request.abort();*5、http.ClientRequest对象的错误事件* request.on('error',function(err){* //事件回调函数代码* })* 6、在建立连接过程中,当为该端口分配端口时,触发http.ClientRequest对象的socket事件* request.on('socket',function(socket){* //事件回调代码* })* 7、可以在http.ClientRequest对象的socket事件的回调函数中,使用socket端口的setTimeout方法指定socket的超时时间* 然后监听timeout事件,在回调函数中指定当超时时使用http.ClientRequest对象的abort方法终止请求* req.on('cocket',function (socket) { socket.setTimeout(1000); socket.on('timeout',function () { req.abort(); }); }); 8、由于超时终止请求将会触发错误,因此需要绑定error事件** *//*使用setTimeout方法设置端口超时时间*//*var http = require('http');var options={ hostname:'www.amicrosoft.cn', port:80, path:'/', method:'GET'};//下面一句也可以这样写var req = http.get(options,function (res) {//使用get请求数据时不用写end方法,系统将自动调用。其他和request一样var req = http.request(options,function (res) { console.log('状态码:'+res.statusCode); console.log('响应头:'+JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data',function (chunk) { console.log('相应内容:'+chunk); });});//设置超时时间req.setTimeout(1000,function () { req.abort();});req.on('error',function (err) { if(err.code == 'ECONNRESET'){ console.log('socket端口超时'); } else console.log('在请求数据过程中发生错误,错误代码为:'+err.code);});req.end();*/
/*向本地服务器请求数据*/
服务器端:
var http = require('http');var server = http.createServer(function (req, res) { if(req.url != '/favicon.ico'){ req.on('data',function (data) { console.log('服务器端接收到数据:'+data); res.end(); }); }}).listen(3000);
/*客户端*/
var http = require('http');var options = { hostname:'localhost', port:3000, path:'/', method:'POST'};var req = http.request(options);req.write('您好');req.end();
/*制作代理服务器*//*var http = require('http');var url = require('url');var server = http.createServer(function (sreq, sres) { var url_parts = url.parse(sreq.url); var opt = { host:'www.amazon.cn', port:80, path:url_parts.pathname, headers:sreq.headers } var creq = http.request(opt,function (cres) { sres.writeHead(cres.statusCode,cres.headers); cres.pipe(sres); }); sreq.pipe(creq);}).listen(3000);*/
阅读全文
0 0
- node.js学习笔记之HTTP客户端
- node.js学习笔记之HTTP获取客户端请求信息
- Node.js学习笔记5【http服务器与客户端】
- node.js学习笔记之创建TCP客户端
- node.js学习笔记之创建UDP服务器与客户端
- Node.js HTTP客户端
- node.js http客户端
- node.js学习笔记之HTTP---发送服务器端响应流
- node.js学习之创建HTTP服务器
- Node.js学习之内置模块http
- Node.js学习(11)----HTTP服务器与客户端
- Node.js学习--基础知识(9)--HTTP客户端
- node.js学习(HTTP)
- node .js 学习 http
- Node.js之HTTP
- node.js学习笔记之安装详解
- node.js学习笔记之常用命令
- node.js学习笔记之安装详解
- 微信公众号开发点滴
- 何时需要做urlEncode,以及为什么要做
- 机器人行业分析
- html,css,javascript角色划分
- iOS下的界面布局利器-MyLayout布局框架
- node.js学习笔记之HTTP客户端
- SVG坐标系统和transformation彻底理解
- vuejs plus d3
- styling the SVG images
- 参照安卓计算CRC16校验码的方法获取Objective-C的CRC16位校验码
- 场景异步加载显示加载界面
- hihocoder1543(思维+ 二分)
- 古老的CSS同高列问题
- base64编码以及url safe base64是怎么工作的?