【nodejs】使用Node.js实现REST Client调用REST API
最近在产品中开发基于REST的API接口,结合自己最近对Node.js的研究,想基于它开发一个REST Client做测试之用。
通过初步研究,Node.js开发HTTP Client还是挺方便的。
选用Node的理由:
1. 使用完全基于JavaScript的Node测试JSON格式的数据,非常之方便
2. Node有很好的社区支持。(现在GitHub上已成了JavaScript最大的开源社区)
By Example:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
var http = require('http');var equal = require('assert').equal;var username = 'falcon';var password = '';var _auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64')var options = { host: 'localhost', port: 13080, path: '/SM/7/rest/1.1/incident_list/', method: 'GET', headers:{ 'accept': '*/*', 'content-type': "application/atom+xml", 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9', 'authorization': _auth, 'user-agent': 'nodejs rest client' }};var req = http.request(options, function (res) { console.log('STATUS: ' + res.statusCode); equal(200, res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.on('data',function (chunk) { console.log('BODY: ' + chunk); });});req.on('error', function(e) { console.log('problem with request: ' + e.message);});req.end(); |
将上述代码保存成RestTest.js,然后在命令行上运行: node RestTest.js 就可以看输出的结果了。
上面的代码只是使用Node自带的Assert做Unit Test,如果有兴趣的话,还是引入Jasmine等BDD的测试框架。(待续。。。)
【nodejs】使用Node.js实现REST Client调用REST API的更多相关文章
- Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch(1)
继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...
- Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch
继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...
- 【NodeJS】Node.JS 开发环境安装
1.前言 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O ...
- 在Node.js中使用ffi调用dll
类似的文章还是比较多的,但或多或少有一些问题没有解决,在此我将其整合并分享给大家: 测试环境: Node.js 9.9.0 VisualStudio 2015 "ffi": &qu ...
- 【Nodejs】Node.js(Express)の環境構築
[Express]の環境 参考URL:http://expressjs.com/en/starter/generator.html ①Node.jsの準備 (参考URL:https://www.cnb ...
- [Node.js] 08 - Web Server and REST API
有了 [Node.js] 07 - Html and Http 作为基础,再继续下面的内容. Node.js 路由 Node.js GET/POST请求 Node.js Web 模块 Node.js ...
- 极简 Node.js 入门 - 3.1 File System API 风格
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- [NodeJS]使用Node.js写一个简单的在线聊天室
声明:教程来自<Node即学即用>.源代码案例均出自此书.博文仅为个人学习笔记. 第一步:创建一个聊天server. 首先,我们先来写一个Server: var net = require ...
- Nodejs:Node.js模块机制小结
今天读了<深入浅出Nodejs>的第二章:模块机制.现在做一个简单的小结. 序:模块机制大致从这几个部分来讲:JS模块机制的由来.CommonJS AMD CMD.Node模块机制和包和n ...
随机推荐
- LoadRunner字符串与参数的操作及转换技巧
刚开始学LR时,经常搞不清楚变量和参数的区别与用法,最近在一次脚本编写中,整理出来的一些小技巧,与大家一起分享. //字符串复制 strcpy(str,"Hello ") ; // ...
- JNI常见错误1
1, java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "signal" referenced ...
- 【分享送书】NGUI全面实践教程V3.8.2 活动开始了!!
[分享送书]NGUI全面实践教程V3.8.2 活动开始了!! 活动奖品: 活动地址:http://dwz.cn/JHdlu
- 暴力枚举 UVA 725 Division
题目传送门 /* 暴力:对于每一个数都判断,是否数字全都使用过一遍 */ #include <cstdio> #include <iostream> #include < ...
- POJ2762 Going from u to v or from v to u?(判定单连通图:强连通分量+缩点+拓扑排序)
这道题要判断一张有向图是否是单连通图,即图中是否任意两点u和v都存在u到v或v到u的路径. 方法是,找出图中所有强连通分量,强连通分量上的点肯定也是满足单连通性的,然后对强连通分量进行缩点,缩点后就变 ...
- Spark Streaming实时计算框架介绍
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐.用户行为分析等. Spark Streaming是建立在 ...
- ios cocos2d TexturePacker生成文件后的使用方法
(1)将*.pvr.ccz文件转换为CCSpriteBatchNode (2) 将对应的plist文件读到CCSpriteFrameCache中 (3) 从CCSpriteFrameCache获取 ...
- [Unity2D]预制件Prefab
预制件Prefab是一个组件模板,比如在游戏里面要实现开枪的时候会有子弹不停地从枪口飞出来,那么就可以通过Prefab来实现子弹的游戏对象,表示所有的子弹都是从同一个Prefab来构建出来的,也可以理 ...
- xfce4桌面自动整理脚本
转自http://blog.chinaunix.net/uid-22101074-id-91073.html (有修改) xfce4桌面没有自动排列的功能,如果文件多了,超出了桌面的范围,就不好找了, ...
- Idea_从Eclipse转Intellij IDEA
场景:使用Intellij IDEA感觉还是不是很顺手,想放弃又舍不得它,如:强大的代码提示功能. 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclip ...