1. request方法:

提交评论到慕课网:

 var http = require('http');
var querystring = require('querystring'); var postData = querystring.stringify({
'content': '很喜欢Scot老师的课程. 希望尽快学会nodejs!',
'cid': 348
}); 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':'PHPSESSID=lvk77ha5lgp411jqbl2n9dovd0; imooc_uuid=94406a08-7461-473e-8676-a730e6d1f16a; imooc_isnew=1; imooc_isnew_ct=1501826723; loginstate=1; apsid=E0M2ExNjBmNWQwN2Q0MDc0YzhhZWUwMmY4MTg3NmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTM1NTg1NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4X2RhY2hlbmdAMTI2LmNvbQAAAAAAAAAAAAAAAAAAAGY3YzYwNzdjYjlmMjBkYTA0OWI0OWE3ZjhiZDgxMzEz6Q6EWekOhFk%3DNm; last_login_username=x_dacheng%40126.com; Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=1501826670; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1501826738; IMCDNS=0; cvde=59840ea3a723c-7',
'Host':'www.imooc.com',
'Origin':'http://www.imooc.com',
'Referer':'http://www.imooc.com/comment/348',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36',
'X-Requested-With':'XMLHttpRequest'
}
}; //发送请求:
var req = http.request(options, function(res){ console.log('status: ' + res.statusCode);
console.log('headers: ' + JSON.stringify(res.headers)); res.on('data', function(chunk){
console.log(Buffer.isBuffer(chunk));
console.log(typeof chunk);
}); res.on('end', function(){
console.log('评论完毕!');
});
}); req.on('error', function(e){
console.log('Error: ' + e.message);
}); //写入请求数据:
req.write(postData); //结束请求:必须写的:
req.end();

注意:

  第56行的代码:   req.end(); 必须写.

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

2. get() 方法.

get方法是 对 request方法的封装,    get方法 自带 req.end()

nodejs 请求端: get.js

 var http = require('http');
var querystring = require('querystring'); var postData = {
'name': '小明',
'age': 26
}; var postDataStr = querystring.stringify(postData); http.get('http://www.a.com/response.php?'+postDataStr, function(res){
console.log('status: ' + res.statusCode);
console.log('headers: ' + JSON.stringify(res.headers));
var txt = '';
res.on('data', function(chunk){
// console.log(Buffer.isBuffer(chunk));
// console.log(typeof chunk); txt += chunk;
}); res.on('end', function(){
console.log(typeof txt);
console.log(txt); 29 console.log(typeof JSON.parse(txt));
30 console.log(JSON.parse(txt));
31 console.log(JSON.parse(txt).name);
32 console.log(querystring.unescape(JSON.parse(txt).name));
});
}).on('error', function(e){
console.log('Error: '+e.message);
});

PHP接收端: response.php

 <?php

     $name = $_GET["name"] . '--返回数据';
$age = $_GET['age'] + 100; echo json_encode(array(
'name' => $name,
'age' => $age,
'address' => 'beijing'
)); ?>

运行:

 注意:

  •   返回的数据 是 json格式的字符串 ,因此要使用 JSON.parse() 转化为json对象.

  

参考链接:

nodejs -- http模块. request() 方法 , get方法.的更多相关文章

  1. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  2. python3 中mlpy模块安装 出现 failed with error code 1的决绝办法(其他模块也可用本方法)

    在python3 中安装其它模块时经常出现 failed with error code 1等状况,使的安装无法进行.而解决这个问题又非常麻烦. 接下来以mlpy为例,介绍一种解决此类安装问题的办法. ...

  3. Node.js -- Router模块中有一个param方法

    这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: 1 Map lo ...

  4. request对象多种方法封装表单数据

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...

  5. Struts2获取request三种方法

    Struts2获取request三种方法   struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象. 在Actio ...

  6. python之序列化模块、双下方法(dict call new del len eq hash)和单例模式

    摘要:__new__ __del__ __call__ __len__ __eq__ __hash__ import json 序列化模块 import pickle 序列化模块 补充: 现在我们都应 ...

  7. request对象的方法及其参数的传递

    先设计一个简单的登录界面index.htm: <html><head><title>request的使用</title></head>< ...

  8. python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性

    python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性 inspect import inspect def fun(): pass inspect.ism ...

  9. os、os.path模块(文件/目录方法)

    1.模块的概念:模块是一个包含所有定义的变量.函数的文件,模块可以被其余模块调用. 2.利用OS模块实现对系统文件的. os模块中常见的方法: gercwd()     返回当前工作目录 chdir( ...

随机推荐

  1. python 设置位置参数是整数类型

  2. sublime text 入门

    sublime text3入门教程 2017年07月19日 09:15:51 阅读数:13736 作者:sam976 转载需征得作者本人同意,谢谢. 1.介绍 所谓工欲善其事必先利其器,编码过程合理熟 ...

  3. 【shell】wc命令

    wc是一个非常方便的文本处理命令,有两个功能: 统计文件的行数 统计文件的字符数 那么就有三个参数: -l :只统计行数 -w: 统计英文单词数 -m: 统计字符数 default :行数+单词数 默 ...

  4. vue elementui报错总结

    1.  错误: TypeError: _self.$scopedSlots.default is not a function 原因:这是因为在v-for/v-if切换标签时,原本这些标签每一个都是独 ...

  5. Bugku-CTF之看看源代码吧

    Day13 看看源代码吧 http://123.206.87.240:8002/web4/   本题要点:url解码   首先看到文本框,我们还是要习惯性输入一下

  6. NSIS控制面板中显示安装包的大小和禁止多个安装程序实例

    转载:http://www.yhxs3344.net/jscript/nsis 转载:http://www.yhxs3344.net/archives/1292 1.控制面板中显示安装包的大小 ;需要 ...

  7. centos6.5安装zabbix3.2

    1.安装PHP Zabbix 3以后对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7 rpm -ivh  ...

  8. bzoj1001狼抓兔子 对偶图优化

    bzoj1001狼抓兔子 对偶图优化 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1001 思路 菜鸡总是要填坑的! 很明显让你求网格图的最 ...

  9. Learning-Python【22】:面向对象初识

    一.面向过程:是一种编程思想,核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么,基于该编程思想写程序就好比在设计一条流水线,是一种机械式的思维方式 优点:把复杂问题流程化,进而简 ...

  10. XGpio函数

    头文件 #include"xgpio.h" int XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId) 功能:初始化GPIO 参 ...