美文网首页
7.http.request

7.http.request

作者: coderLfy | 来源:发表于2017-01-10 19:14 被阅读35次

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();

相关文章

  • 7.http.request

    http.request(options[,...callback]) 根据Scott老师的视频学习到了http....

网友评论

      本文标题:7.http.request

      本文链接:https://www.haomeiwen.com/subject/sgclbttx.html