http.request(options[,...callback])
根据Scott老师的视频学习到了http.request()
http.request
直接贴出官方api
https://nodejs.org/api/http.html#http_http_request_options_callback
参数比较多需求的时候在查询即可!
用Node来模拟一次评论操作
首先要拿到头信息所以我先评论了一次然后拿到请求信息
我把cookie删除点,大家要使用自己修改一下headers中的内容即可
- 这个内容以注释的方式解释
var http = require('http');//引入http模块
var querystring = require('querystring');//引入querystring模块可进行序列化
//这里是要传入的参数用stringify的方法序列化,其效果类似于Js方法中的JSON.stringify
var postData = querystring.stringify({
'content':'老师么么哒,顺便测试一下!',
'mid':8837
});
//头信息
var options = {
hostname:'www.imooc.com',
port:80,
path:'/course/docomment',
method:'POST',
headers:{
'Accept':'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8',
'Connection':'keep-alive',
'Content-Length':postData.length,
'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8',
'Cookie':'imooc_uuid=15f58ae7-2d00-4fc1-9801-1a78dde18bc2; imooc_isnew_ct=1482830692; loginstate=1; apsid=IxYWQwNTcwY2RiNDY2YWM3Z7999,1483688200,1483949602,1484013932; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1484034431; cvde=587441144e831-67; IMCDNS=1',
'Host':'www.imooc.com',
'Origin':'http://www.imooc.com',
'Referer':'http://www.imooc.com/video/8837',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
'X-Requested-With':'XMLHttpRequest'
}
};
//调用该方法,回调由于Node是以事件流的形式往下走的,
var req = http.request(options,function(res){
console.log('Status: ' + res.statusCode);
console.log('headers: ' + JSON.stringify(res.headers));
//监听data事件,有data了触发这个
res.on('data',function(chunk){
console.log(Buffer.isBuffer(chunk));
console.log(typeof chunk);
});
//监听end事件,每次触发完都有个结束的标志
res.on('end',function(){
console.log('评论完毕!');
});
});
//响应失败-触发error事件
req.on('error',function(e){
console.log('Error: ' + e.message) ;
});
//把请求的参数写入响应头
req.write(postData);
//手动执行
//官方对这句的解释:在实施例req.end()被调用。随着http.request()人们必须始终调用req.end(),以表示你的要求做的-即使没有数据被写入请求主体。
req.end();