Python调用示例 coding: utf8 import urllib import datetime import requests import json import hashlib import base64 import hmac import datetime import uuid import os import sys if sys.versioninfo.major 2: from urllib import quote sys.setdefaultencoding('utf8') VERSION '2' else: VERSION '3' from urllib.parse import quote from importlib import reload from urllib3 import encodemultipartformdata from collections import OrderedDict reload(sys) METHODGET 'GET' METHODPOST 'POST' fileFalse 官网accessKey ak '' 官网securityKey sk '' defhmacsha256(secret, data): iftype(secret)bytes: secret bytearray(secret) else: secret bytearray(secret,'utf8') data bytearray(data,'utf8') return hmac.new(secret, data, digestmodhashlib.sha256).digest() defbase64ofhmac(data): return base64.b64encode(data) defgetrequestuuid(): returnstr(uuid.uuid1()) defgetsortedstr(data, method): """ 鉴权用的参数整理 :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) defbuildsign(queryparams, bodyparams, eopdate, requestuuid, method): """ 计算鉴权字段 :param queryparams: dict get请求中的参数 :param bodyparams: dict post请求中的参数 :param eopdate: str 请求时间,格式为:'%Y%m%dT%H%M%SZ' :return: str """ bodystr "" ifnotfile: bodystr json.dumps(bodyparams)if bodyparams else'' if method METHODPOST: iffile: bodydigest hashlib.sha256(bodyparams).hexdigest() print ('bodyparams +'+bodyparams+' bodyparams')