当前位置:   article > 正文

接口调用工具(postman,apipost)使用aksk调用接口脚本_postman aksk

postman aksk

使用postman工具调试接口时,需要编写Pre-request Script脚本进行签名。具体方法如下:

  1. 复制如下脚本到Pre-request Script中:
//设置accessKey和secretKey
var accessKey = "*************";
var secretKey = "*************";


//生成当前时间戳
var timestamp = Math.round(new Date().getTime());
//定义一个随机数(32768, 65536)之间
var nonce = parseInt(Math.random()*(32769)+32768,10);

pm.environment.set("ak", accessKey);
pm.environment.set("random", nonce);
pm.environment.set("timestamp",timestamp);

var ss = new Array();
ss.push({"key": "accessKey", "value": accessKey});
ss.push({"key": "random", "value": nonce});
ss.push({"key": "timestamp", "value": timestamp});

var query = pm.request.url.query;
var queryStr = JSON.stringify(query);
var queryArr = JSON.parse(queryStr);
for(const item of queryArr){
    if(item.disabled){
        continue;
    }
    if(item.value){
        ss.push({"key": item.key, "value": item.value});
    }   
}
ss.sort(function(x,y){
        return x.key.toString().localeCompare(y.key.toString());
    });
var str = "";
for(const s of ss){
    str += s.key + "=" + s.value + "&";
}
str += "key=" + secretKey;

var sign= CryptoJS.MD5(str).toString().toUpperCase();
pm.environment.set("sign", sign);
  • 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
  • 39
  • 40
  • 41
  1. 在header中增加四个参数,分别是:accessKey、timestamp、random、sign,如下图所示:
    在这里插入图片描述------------------------分割线---------------------------
    后端调用Demo
    1.引入sdk的包
    2.在本地系统配置文件中配置ak、sk以及url,可以通过配置文件方式也可以定义常量。如下图。在这里插入图片描述
    3.编写调用方法,可以使用HttpClient或者RestTemplate进行接口调用。如下图。
@Value("${remote.url}")
private String baseUrl;
@Value("${remote.accessKey}")
private String accessKey;
@Value("${remote.secretKey}")
private String secretKey;

//获取平台获取的ak,sk可以使用配置文件或者常量方式
//AkSkProperties 为sdk对象
AkSkProperties properties = new AkSkProperties();
properties.setAccessKey(accessKey);
properties.setSecretKey(secretKey);
properties.setUrl(baseUrl);

//params为调用接口的请求参数
Map<String,String> params = new HashMap<>();
//通过传入请求参数,调用sdk方法排序、获取时间戳、随机数以及Sign签名
Map<String, String> map = AkSignUtils.getUrlSign(properties, params);

//设置请求头,accessKey、timestamp、random以及sign
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("accessKey", map.get("accessKey"));
requestHeaders.add("timestamp", map.get("timestamp"));
requestHeaders.add("random", map.get("random"));
requestHeaders.add("sign", map.get("sign"));

//使用RestTemplate进行接口调用
RestTemplate template = new RestTemplate();
HttpEntity<String> requestEntity = new HttpEntity<>(null, requestHeaders);
ResponseEntity<String> response = template.exchange(baseUrl, HttpMethod.GET, requestEntity, String.class);
String result = response.getBody();
System.out.println(result);
  • 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
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/474915
推荐阅读
  

闽ICP备14008679号