Python调用示例 此示例仅适用于 Python 3.6 以上版本 python encoding: utf8 import requests import json import hashlib import base64 import hmac import datetime import uuid METHODGET 'GET' METHODPOST 'POST' METHODHEAD 'HEAD' METHODPATCH 'PATCH' METHODPUT 'PUT' METHODDELETE 'DELETE' 用户天翼云AK/SK AK 'xxx' SK 'xxx' def hmacsha256(secret, data): return hmac.new(secret, data, digestmodhashlib.sha256).digest() def getsortedstr(data): """ 鉴权用的参数整理 :param data: dict 需要整理的参数 :return: str """ sorteddata sorted(data.items(), keylambda item: item[0]) strlist map(lambda xy: '%s%s' % (xy[0], xy[1]), sorteddata) return '&'.join(strlist) def buildsign(queryparams, bodyparams, eopdate, requestuuid): """ 计算鉴权字段 :param queryparams: dict get请求中的参数 :param bodyparams: dict post请求中的参数 :param eopdate: str 请求时间,格式为:'%Y%m%dT%H%M%SZ' :return: str """ 步骤一:构造代签字符串sigture bodystr json.dumps(bodyparams) bodydigest hashlib.sha256(bodystr.encode('utf8')).hexdigest() headerstr 'ctyuneoprequestid:%sneopdate:%sn' % (requestuuid, eopdate) 请求头中必要的两个参数 querystr getsortedstr(queryparams) url中的参数,或get参数 signaturestr '%sn%sn%s' % (headerstr, querystr, bodydigest) 步骤二:构造动态秘钥kdate signdate eopdate.split('T')[0] ktime hmacsha256(SK.encode('utf8'), eopdate.encode('utf8')) kak hmacsha256(ktime, AK.encode('utf8')) kdate hmacsha256(kak, signdate.encode('utf8'))