postman发送HTTP请求自动生成MD5签名
POSTMAN是常用的接口测试工具
如果需要生成签名之类的动态变量,可以通过Pre-request Script脚本来实现
通俗说:它是js的语法,同时内置了postman的方法,可以轻松实现各种算法,截图如下:
MD5签名
先模拟一个简单的例子,从body中获取变量,然后手工拼接并生成MD5值
代码如下:
/**
* 通过request.data获取body的内容,这个是postman内置变量
* 常用内置参数如下:
* request 获取请求的参数,包括头和请求体
* responseHeaders 返回值的header
* responseBody 返回值的body
* responseCode 返回值的http code
*/
var params = request.data; /**
* MD5加签规则:
* 1、根据key排序(这里就直接根据顺序拼接了)
* 2、如果value不为空,就拼接如下:key1=value1&key2=value2 生成原串
* 3、原串后+盐值,比如salt=shengpay,最终的摘要串=key1=value1&key2=value2shengpay
* 4、消息摘要,并将结果转为大写
*
*/
//连接符
var join = '&';
//盐值
var MD5_SALT_SUFFIX = "shengpay";
var md5salt = params.subMerchantNo + MD5_SALT_SUFFIX; var md5String = "orderId=" + params.orderId + join +
"subMerchantNo=" + params.subMerchantNo + join +
"terminalId=" + params.terminalId + md5salt;
console.log("md5String---->" + md5String); var md5 = CryptoJS.MD5(md5String).toString().toUpperCase(); //MD5摘要后并转换为大写 console.log("md5 digest---->" + md5); //放入环境变量
//pm.environment.set("sign_message",md5)
postman.setGlobalVariable("md5msg", md5);
赋值:
运行时候,打开控制台,就可以看到console.log()在控制台打印的日志啦
代码很简单,直接看注释即可,唯一需要提一下,这里MD5签名使用到了CryptoJS类库,这是js的一个加解密的类库,支持AES、RSA等各种加解密算法;
SHA1签名
这里稍微复杂点,从body获取参数放入数组,然后排序,然后根据规则拼接字符串,最后生成SHA1签名串并使用十六进制编码;
直接看代码:
/**
* 通过request.data获取body的内容,这个是postman内置变量
* 常用内置参数如下:
* request 获取请求的参数,包括头和请求体
* responseHeaders 返回值的header
* responseBody 返回值的body
* responseCode 返回值的http code
*/
var params = request.data; //body中参数放入数组
var list = [params.subsystemId,params.clientId,params.account,params.timestamp];
console.log("list---->" + list); // 字段排序:这里建议使用默认的排序,优先比较字符的第一个,相同则比对第二个...
//list.sort(function(a, b){
//return b-a; //数字的排序
// return b.localeCompare(a); //字符串排序
//});
list.sort();
console.log("list ---->" + list); //字段重新组装拼接
var tmp='';
for(var i=0;i<list.length;i++){
tmp += list[i];
}
console.log("tmp ---->" + tmp); //生成签名串:这里使用SHA1算法并使用十六进制编码
//CryptoJS-为JavaScript提供了各种各样的加密算法
//作者:CryptoJS<>(https://code.google.com/p/crypto-js/)
var signHmacSHA1=CryptoJS.SHA1(tmp).toString(CryptoJS.enc.Hex).toUpperCase();
console.log("sign ---->" + signHmacSHA1); //放入环境变量
//pm.environment.set("sha1msg",signHmacSHA1)
postman.setGlobalVariable("sha1msg", signHmacSHA1);
postman发送HTTP请求自动生成MD5签名的更多相关文章
- postman发送json请求,使用案例
介绍: postman是一个很好的http模拟器,,可以发送get.post.put等各种请求,是测试服务接口相当好的工具. postman发送json请求,使用案例 发送json的具体步骤: 1. ...
- postman发送post请求,报405 Method Not Allowed
postman发送post请求,报405 Method Not Allowed: 亲测有效的方案一: 检查请求header是否缺少必要信息.如果不清可以把所有的头部信息全部粘贴到header中,尝试是 ...
- Postman发送GET请求带中文
当使用Postman进行GET请求,并且请求参数里携带中文得时候,会请求失败 这时,需要对GET请求参数携带的中文进行编码即可请求成功
- 解决postman环境切换,自动获取api签名时间及签名
postman调试api接口时,常遇到两个问题: 1.环境分为开发环境,测试环境,正式环境,如何只写一个接口,通过切换postman环境来实现不同环境的接口调用? 2. api接口请求时往往会添加,来 ...
- 如何使用Postman发送get请求?
一.接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性. 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保障 ...
- Postman 发送http请求工具
http://donglegend.com/2016/10/28/Postman/ Postman 发现一款发送Web API & HTTP 请求的工具,没错,就是Postman.推荐给大家, ...
- postman发送json请求
简介: postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get.post.put等各种请求. 发送json的具体步骤: 1.选择post请求方式,同时将heade ...
- postman --发送json请求
转自: http://blog.csdn.net/wangjun5159/article/details/47781301 简介: postman是一个很好的http模拟器,在测试rest服务时是很好 ...
- postman发送get请求
在地址栏里输入请求url(用到拼接方式):http://127.0.0.1:8081/getuser?userid=1 选择“GET”方式, 点击“send”得到json数据如图 分类: post ...
随机推荐
- HDU 5288——OO’s Sequence——————【技巧题】
OO’s Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- nyoj 214——单调递增子序列(二)——————【二分搜索加dp】
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长 ...
- 分支结构if……else
语法: if(条件) 语句或语句块1 end else begin 语句或者语句块2 end 特点: . else并不一定是必须的. . 如否条件为真,将执行语句和语句块1,条件为假时执行语句或语句块 ...
- 【Java集合】LinkedList详解中篇
这是关于LinkedList的第二篇文章,我将会源码分析LinkedList的部分重要代码,关键地方我都有注释说明,希望大家能比较明白的看懂! 分析源码按照顺序分析: 变量 构造方法 方法 一.变量 ...
- H5插入视频兼容主浏览器
插入视频的方法有很多种,但是有一些方法不兼容. 方法1:DW插入视频利用DW插入的视频为flv格式,操作较简单,但是代码复杂,需要浏览器支持flash插件:火狐浏览器需要手动下载flash插件,比较麻 ...
- asp 日期操作
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Response.Buffer=True Sessi ...
- 2018.10.16 NOIP模拟赛解题报告
心路历程 预计得分:\(100 + 100 + 20 = 220\) 实际得分:\(100 + 100 + 30 = 230\) 辣鸡模拟赛.. T1T2都是一眼题,T3考验卡常数还只有一档暴力分. ...
- Web前端面试指导(九):盒子模型你是怎么理解的?
问题分析 这道题问得比较宽泛,一定要找准切入点,如果切入点找不准,很容易乱答,甚至答偏,所以找准切入点是非常的重要的. 解答思路 1)盒子模型有两种,W3C和IE盒子模型 (1)W3C定义的盒子模型包 ...
- vue1.0 与 Vue2.0的一些区别 及用法
1.Vue2.0的模板标记外必须使用元素包起来: eg:Vue1.0的写法 <!DOCTYPE html> <html> <head> <meta chars ...
- 【Linux】文本编辑器Vim常用操作入门
Linux常用文本编辑器:Vi & Eamcs Vim -- Vi的升级版本 Vim 一.3种工作模式 命令行模式 (Command Mode) 插入模式 (Insert Mode) -- 键 ...