首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >API获取域名列表一直AuthFailure,code:4100?

API获取域名列表一直AuthFailure,code:4100?

提问于 2020-01-07 21:38:10
回答 1关注 0查看 289
import hmac
import hashlib
import json
import requests
import time
from hashlib import sha1
import base64
from urllib.parse import quote
with open("config.json") as config_file:
    config = json.load(config_file)  
uri = "cns.api.qcloud.com/v2/index.php?"
SecretId = config["SecretId"]
SecretKey = config["SecretKey"]

# 所需要的参数
param_dict = {
    "Action": "DomainList",
    "Nonce": "233333",
    "SecretId": SecretId,
    "Timestamp": str(int(time.time()))

}

# 生成请求字符串
result_str = ("Action=" + param_dict["Action"]
              + "&Nonce="+param_dict["Nonce"]
              + "&SecretId="+param_dict["SecretId"]
              + "&Timestamp="+param_dict["Timestamp"]
              )

# 拼接签名原文字符串
requestStr = "GET"+uri+result_str

# 签名
signStr = requestStr.encode("UTF-8")
SecretKey = SecretKey.encode("UTF-8")
hashed = hmac.new(SecretKey, signStr, sha1).hexdigest()

# base64加密,同时进行URL编码
base64Data = quote(base64.b64encode(hashed.encode("utf-8")))

data = requests.get("https://"+uri+result_str+"&Signature="+base64Data).text
print(data)


# -------------------输出------------------
# {
# "code":4100,
# "message":"\u8eab\u4efd\u8ba4\u8bc1\u5931\u8d25
#            \uff0c\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u5931\u8d25",
# "codeDesc":"AuthFailure"
# }
# ------------------------------------------
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档