7.http.request

http.request(options[,...callback])


根据Scott老师的视频学习到了http.request()

官方文档-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();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容