Postman使用js生成url入参

很多接口都有sign参数,规则是将地址栏的参数加密后生成,有时候前端的生成的sign跟服务端生成的不匹配,这个时候可以将前端的sign代码要过来,在postman执行js生成sign参数后去后台打断点对比。

编写js

位置:位置位于body右边的,Pre-request Script
注意,脚本生成了pwd变量并设置为全局变量,以便接口调用
如果将Pre-request Script写在接口文件夹根目录上,就可以实现全局调用
Postman唤醒console工具栏的快捷键是Alt+Ctrl+C

JS加密:

let sign_salt= '';//就是key
let sign_str= '';
let request_param = {'key1':'value1','key2':'value2'};
let now_time = Math.round(new Date().getTime()/1000).toString();
let sorted_key = Object.keys(request_param).sort()
for(let tok in sorted_key){
    if(sorted_key[tok] == 'sign'){
        continue;
    }
    sign_str += (sorted_key[tok] + '=' + request_param[sorted_key[tok]]) 
}
sign_str = sign_salt+sign_str+sign_salt;
sign_str = CryptoJS.MD5(sign_str).toString().toUpperCase()
postman.setGlobalVariable("sign", sign_str)//传递给postman

PHP加密:

 ksort($request_params);
 $sign_str    = "";
 foreach ($request_params as $key => $value) {
     if(is_array($value)){
         $value = json_encode($value);
     }
     $sign_str .= $key.'='.$value;
 }
 $sign_str = $app_secret.''.$sign_str.''.$app_secret;
 unset($key,$value);
 return strtoupper($sign_way($sign_str));

无用函数,忽略

function xorEncode(_key,_str) {
 var keyUnicodeSum=_key; 
 var codedStr = "";    
 for( i = 0; i<_str.length; i++ ) { 
  //分别对每一个等加密字符串进行“位异或”运算
  var _strXOR = _str.charCodeAt(i) ^ keyUnicodeSum; 
  //fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
  codedStr += String.fromCharCode( _strXOR );          
  }
  return codedStr;
}
var xorKey = "4523";
var sign = xorEncode(xorKey,"111111");
console.log(sign);
postman.setGlobalVariable("sign", sign)//传递给postman
//pm.globals.set("sign", sign);//另一种写法

注意

sign不一致,有一种可能是nginx伪静态后入参多了一个s参数,而前端没有。
解决方法:在nginx.conf中将rewrite ^(.*)$ /index.php?s=$1 last;改成rewrite ^(.*)$ /index.php last;

使用

访问:http://127.0.0.1/api/login?sign={{sign}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Postman是一款广泛使用的API开发和测试工具,下面我将分享一些Postman使用技巧。 1. 发送基于Base64的编码和解码请求: - 首先,你可以使用JavaScript编写一个函数来实现Base64编码和解码。你可以考中的链接,里面有具体的实现代码。 - 然后,在Postman中创建一个新的请求。在请求标签中,选择请求方法为POST,并在URL栏中输你要发送请求的地址。 - 在请求标签下方的Body选项卡中,选择"raw"并选择"JSON"格式。 - 在请求主体中输你要编码或解码的数据,然后使用你之前编写的JavaScript函数对其进行编码或解码操作。 - 最后,点击发送按钮,即可查看编码或解码后的结果。 2. 发送Basic Auth授权请求: - 为了发送Basic Auth授权请求,你可以考中的链接,其中提供了关于Basic Auth的详细说明。 - 在Postman中创建一个新的请求。在请求标签中,选择请求方法为POST,并在URL栏中输你要发送请求的地址。 - 在请求标签下方的Authorization选项卡中,选择类型为Basic Auth。 - 输用户名和密码,这将被编码并作为授权头部自动添加到请求中。 - 最后,点击发送按钮,即可发送带有Basic Auth授权头部的请求。 3. 自动添加授权头部: - Postman可以自动生成授权头部,以便在发送请求时使用。 - 在Postman中创建一个新的请求。在请求标签中,选择请求方法为POST,并在URL栏中输你要发送请求的地址。 - 在请求标签下方的Authorization选项卡中,选择你想要的授权类型,例如Basic Auth。 - 根据所选类型的要求,填写相应的用户名和密码等信息。 - 在发送请求时,Postman将自动将授权头部添加到请求中。 以上是一些Postman使用技巧。你可以根据具体的需求和情况,灵活运用这些技巧来提高你的API开发和测试效率。如果你需要更详细的信息,可以考和中提供的链接。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值