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 相关文章推荐
超级退弹代码
Jul 07 Javascript
浅谈JavaScript编程语言的编码规范
Oct 21 Javascript
javascript中的self和this用法小结
Feb 08 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
Express.JS使用详解
Jul 17 Javascript
使用requestAnimationFrame实现js动画性能好
Aug 06 Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 Javascript
js中DOM三级列表(代码分享)
Mar 20 Javascript
EasyUI Tree树组件无限循环的解决方法
Sep 27 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
Aug 06 Javascript
el-table树形表格表单验证(列表生成序号)
May 31 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
微信小程序登录态控制深入分析
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生成随机数或者字符串的代码
2008/09/05 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
Python 字符串定义
2009/09/25 Python
centos系统升级python 2.7.3
2014/07/03 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
入职担保书怎么写
2014/05/12 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
合作协议书格式
2014/08/19 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
销售经理工作检讨书
2015/02/19 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
微观世界观后感
2015/06/10 职场文书
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server