Node.js发送HTTP客户端请求并显示响应结果的方法示例


Posted in Javascript onApril 12, 2017

本文实例讲述了Node.js发送HTTP客户端请求并显示响应结果的方法。分享给大家供大家参考,具体如下:

wget.js:发送HTTP客户端请求并显示响应的各种结果

options对象描述了将要发出的请求。

data事件在数据到达时被触发,error事件在发生错误时被触发。

HTTP请求中的数据格式通过MIME协议来声明,例如,提交HTML表单时它的Content-Type会被设置成multipart/form-data

要在HTTP客户端请求中发送数据,只需调用.write方法并写入符合规范的数据(见第二个例子)。

var http = require('http');
var url = require('url');
var util = require('util');
var argUrl = process.argv[2];
var parsedUrl = url.parse(argUrl, true);
var options = {host: null, port: -1, path: null, method: 'GET'};
options.host = parsedUrl.hostname;
options.port = parsedUrl.port;
options.path = parsedUrl.pathname;
if (parsedUrl.search) options.path += "?" + parsedUrl.search;
var req = http.request(options, function(res){
  util.log('STATUS: ' + res.statusCode);
  util.log('HEADERS: ' + util.inspect(res.headers));
  res.setEncoding('utf8');
  res.on('data', function(chunk){
    util.log('BODY: ' + chunk);
  });
  res.on('error', function(err){
    util.log('RESPONSE ERROR: ' + err);
  });
});
req.on('error', function(err){
  util.log('REQUEST ERROR: ' + err);
});
req.end();

node wget.js http://example.com

Node.js发送HTTP客户端请求并显示响应结果的方法示例

又一个发送客户端httprequest例子:使用req.write发送数据

var http = require('http');
var querystring = require('querystring');
var contents = querystring.stringify({
  name: 'joey',
  email: 'joey@joey.com',
  address: 'joey university'
});
var options = {
  host: 'www.joey.com',
  path: '/application/node/post.php',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': contents.length
  }
};
var req = http.request(options, function(res){
  res.setEncoding('uft8');
  res.on('data', function(data){
    console.log(data);
  });
});
req.write(contents);
req.end(); //不能漏掉,结束请求,否则服务器将不会收到信息。

希望本文所述对大家nodejs序设计有所帮助。

Javascript 相关文章推荐
javaScript - 如何引入js代码
Mar 09 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
Jan 28 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
Oct 13 Javascript
微信小程序 页面跳转传参详解
Oct 28 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
Dec 08 Javascript
原生js轮播特效
May 18 Javascript
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 Javascript
javascript实现点亮灯泡特效示例
Oct 15 Javascript
解决Element中el-date-picker组件不回填的情况
Nov 07 Javascript
微信小程序登录态控制深入分析
Apr 12 #Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 #Javascript
微信小程序微信支付接入开发实例详解
Apr 12 #Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 #Javascript
JavaScript数据结构之数组的表示方法示例
Apr 12 #Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
Apr 12 #Javascript
Vue生命周期示例详解
Apr 12 #Javascript
You might like
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
学习ExtJS Column布局
2009/10/08 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
python写一个md5解密器示例
2018/02/23 Python
python奇偶行分开存储实现代码
2018/03/19 Python
浅析python参数的知识点
2018/12/10 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
解决python对齐错误的方法
2020/07/16 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
学校法制宣传月活动总结
2014/07/03 职场文书
三下乡个人总结
2015/03/04 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Django+Celery实现定时任务的示例
2021/06/23 Python