{'Response': {'Error': {'Code': 'AuthFailure.SignatureFailure', 'Message': 'The provided credentials could not be validated. Please check your signature is correct.'}, 'RequestId': '70bab6f9-0544-4530-93f0-148e009168ea'}}
下面是我简单的测试代码,一直都是失败
import time
import base64
import hmac
from hashlib import sha1
from urllib.parse import quote
import requests
SecretId = "AKIDmRuAD7yE2neQ2SSfS5VkneLn33nRse3F"
SecretKey = "********"
send_data = {'Action' : 'DescribeInstances',
'InstanceIds.0' : 'ins-ni190jc6',
'Limit' : 20,
'Nonce' : 11886,
'Offset' : 0,
'Region' : 'ap-hongkong',
'SecretId' : SecretId,
'Timestamp' : int(time.time()),
'Version': '2017-03-12'}
def signature():
sort_send_data = dict(sorted(zip(send_data.keys(), send_data.values())))
srcStr = 'GETcvm.tencentcloudapi.com/?' + '&'.join([k + '=' + str(v) for k, v in sort_send_data.items()])
hmac_str = hmac.new(SecretKey.encode("utf-8"), srcStr.encode("utf-8"), sha1).digest()
sign_str = base64.b64encode(hmac_str).decode("utf-8")
sign_str_splice = quote(sign_str, safe='')
sort_send_data["Signature"] = sign_str_splice
post_data = dict(sorted(zip(sort_send_data.keys(), sort_send_data.values())))
return post_data
if __name__ == '__main__':
url = "https://cvm.tencentcloudapi.com"
post_data = signature()
print(post_data)
resp = requests.get(url, params=post_data)
print(resp.json())
print(resp.url)
相似问题