node.js-4

这两天处于考试模式,开启了学霸状态,直到刚才。。。。

继续node

1.HTTP客户端

http模块提供了两个函数http.request和http.get,功能是作为客户端向HTTP服务器发起请求。

http.request(option,callback)发起请求。option是一个类似关联数组的对象,表示请求的参数,callback是请求的回调函数。

option常用的参数如下所示:

   host:请求网站的域名或ip地址。

   port:请求网站的端口,默认是80.

   method:请求方法,默认是get

   请求的相对于根的路径,默认是“/”。Querytring应该包含在其中例如/search?query=zjx

   headers:一个关联数组对象,求请求头的内容

callback传递一个参数,为http.ClientResponse的实例。

http.request返回一个http.ClientRequest实例。

下面是一个http.request发送post请求的代码

//httprequest.js

//httprequest.js

var http=require('http');
var querystring=require('querystring');

var contents=querystring.stringify({
    name:'zjx',
    email:'3324031**@qq.com',
    address:'zjx22#216',
});

var options= {          
    host:'www.****.com',
    path:'/application/node/post.js',
    method:'post',
    headers:{
        'Content-Type' : 'application/x-www-form-urlencoded',
        'Content-Length' : contents.length
        }
};

var req=http.request(options,function(res){
    res.setEncoding('utf-8');
    res.on('data',function(data){
        console.log(data);
    });
});

req.write(contents);
req.end();

---------------------------------------

结果就不展示了

不要忘记了通过req.end()结束请求,否则服务器将不会接收到信息

http.get(options,callback)http模块还提供的一个更加简便的方法,http.get自动将请求设置成get,且不许要手动调用req.end();

var http=require('http');
http.get({host:'www.zjx**.com'},function(res){
    res.serEncoding('utf-8');
    res.on('data',function(data){
    consolo.log(data);
    });
});

   
http.ClientRequest

http.ClientRequest是由http.request或http.get返回产生的对象,表示一个已经产所而且正在进行中的http请求,提供了一个response事件,即http.request或http.get第二个参数指定的回调函数的绑定对象,可以显示的绑定这个事件监听函数:

//httpresponse.js

var http=require('http');

var req=http.get({host:'www.zjx***.com});

req.on('response',function(res){

   res.setEncoding('utf-8');

  res.on('data',function(data){

  console.log(data);

   });

});

http.ClientRequest像http.ServerResponse一样也提供了write和end函数,用于向服务器发送请求体,通常用于post,put等操作。所有写结束以后必须调用end函数以通知服务器,否则请求无效。http.ClientRequest还提供了一下函数。

  request》abort():终止正在发送的请求。

  request.setTimeout(timeout,[callback]);设置请求超时事件,timeout为毫秒书,请求超时以后,callback将被调用。

还有request.setNoDelay([noDelay])  ,  request.setSocketKeepAlive([enable],{initialDelay})等函数

http.ClientResponse

   http.ClientResponse与http.ServerReuest 相以,提供了三个事件data end close 分别在数据到达、传输结束和链接结束时触发,其中data事件传递一个参数chunk表示接受到的数据。

http.ClientRespnose也提供了一些属性,用于表示请求的结果状态,参见表4-3

statusCode   http状态码

httpVersion   http协议版本 1.0或1.1

  headers  http请求头

   trailers   http请求尾

http.ClientResponse 还提供了一下几个特殊的函数。

response.setEncoding([encoding]):设置默认的编码,当data事件被触发时,数据将会以encoding编码

response.pause():暂停接受数据和发送事件,方便实现下载功能

response.resume():从暂停的状态中恢复。

 






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值