import hmac from hashlib import sha1 import base64 import time import uuid import Config.Config def make_sign(uri): """ 生成签名 """ # API访问密钥 secret_key = Config.Config.LIBLIB_SECRETKEY # 当前毫秒时间戳 timestamp = str(int(time.time() * 1000)) # 随机字符串 signature_nonce = str(uuid.uuid4()) # 拼接请求数据 content = '&'.join((uri, timestamp, signature_nonce)) # 生成签名 digest = hmac.new(secret_key.encode(), content.encode(), sha1).digest() # 移除为了补全base64位数而填充的尾部等号 sign = base64.urlsafe_b64encode(digest).rstrip(b'=').decode() return sign, timestamp, signature_nonce if __name__ == '__main__': uri = "/api/model/version/get" print(make_sign(uri)) sign, timestamp, signature_nonce = make_sign(uri) url = f'{Config.Config.LIBLIB_URL}{uri}?AccessKey={Config.Config.LIBLIB_ACCESSKEY}&Signature={sign}&Timestamp={timestamp}&SignatureNonce={signature_nonce}' print(url) # Content-Type application/json # - 请求body: versionUuid="21df5d84cca74f7a885ba672b5a80d19" # 编写POST提交并接收返回值 import requests response = requests.post(url, json={"versionUuid":versionUuid}) print(response.json())