使用Firefox抓包测一个GET接口的时候,有一个参数data:
1. Firefox抓包看到的参数
于是在postman中,第一次对接口传参时data参数直接写的是:[{"id":"{{exceptionItemA01_id}}"},{"id":"{{exceptionItemA02_id}}"},{"id":"{{exceptionItemA03_id}}"}]
(其中exceptionItemA01_id、exceptionItemA02_id、exceptionItemA03_id是通过其他接口获得到的变量)
然后接口提示400 Bad Request。
经过console比对数据:
console
又看了看Chrome F12:
2. Chrome F12抓包看到的参数
隐约感知到和urlencode有关,但其中的原理尚不明白。最终在postman的Pre-request Script模块添加预处理脚本,data参数传data2_str,接口调用成功。
exceptionItemA01_id = pm.environment.get("exceptionItemA01_id");
exceptionItemA02_id = pm.environment.get("exceptionItemA02_id");
exceptionItemA03_id = pm.environment.get("exceptionItemA03_id");
data2 = '[{"id":'+ exceptionItemA01_id +'},' + '{"id":'+ exceptionItemA02_id +'},' + '{"id":'+ exceptionItemA03_id +'}]';
data2_str = encodeURIComponent(data2);
pm.environment.set("data2_str", data2_str);
图片.png
网友评论