接口-签名Sign-Jmeter写法
https://www.cnblogs.com/zibinchen/p/12879710.html
实现目标
/v1/shippingtickets/inbound/departure 发货接口 POST请求
需要进行签名校验 【X-Sign】
Content-Type: application/json; charset=UTF-8
X-Timestamp: 1589297138920
X-Nonce: 93295642
X-Sign: 2a76a7d2ec34760afb7f4f3ff5a02ef3
X-Client-Id: KT071101
传参:{"ticketNo":"HCSP202005120006","trackingNumber":"SF1589297133080","chargerSerialNum":"SF1589297133080","shippingComment":"abc"}
sign是由【传参+时间戳+随机数+"cM5qa0Xv9G868G"】转成MD5码
实例
import time import requests import random import hashlib def type_delivery(self,shippingNo): url = 'https://develop.preview.cn/smamo-home-charging-ticket/v1/shippingtickets/inbound/departure' Timestamp = str(int(time.time() * 1000)) Nonce = str(random.randint(10000, 99999)) ClientId = "KT071101" trackingNumber = "SF" + Timestamp a = '{"ticketNo": "%s", "trackingNumber": "' % shippingNo b = '%s", "chargerSerialNum": "' % trackingNumber c = '%s", "shippingComment": "abc"}' % trackingNumber d = '%scM5qa0Xv9G868G' % Nonce src = a + b + c + Timestamp + d # 注意冒号:和逗号,后要留空格 # print(src) m5 = hashlib.md5() m5.update(src.encode("utf-8")) Sign = str(m5.hexdigest()) # print(Sign) header = { "Content-Type": "application/json; charset=UTF-8", # application/json; charset=UTF-8 "X-Timestamp": Timestamp, "X-Nonce": Nonce, "X-Client-Id": ClientId, "X-Sign": Sign } # print(header) data = {"ticketNo": shippingNo, "trackingNumber": trackingNumber, "chargerSerialNum": trackingNumber, "shippingComment": "abc"} result = requests.post(url, json=data, headers=header) print(result.json())