Python 3.8.5请求2.22.0
我使用的API需要唯一的签名头格式
请注意,这是一个标题,其中还包括一个标题列表。 格式:
标题:X-Ca-Signature
stringToSign=HTTPMethod+"\n"+ Headers+"\n"+API_URI+"\n"+FormattedQFStr;
我相信这可以解释为
GET
X-Ca-Key:ACCESSKEY
X-Ca_Nonce:UUID
X-Ca-Timestamp:UNIX_TIMESTAMP
api/open/v1/device/checkMac
mac=MACADDR
我尝试了以下三种方法来构造标题
stringToSign = str("GET" + "n\\" + "X-Ca-Key:" + ACCESSID + "n\\" + "X-Ca_Nonce:" + UUID + "n\\" + "X-Ca-Timestamp:" + MILLI_TIMESTAMP_STRIPPED + "n\\" + "api/open/v1/device/checkMac" + "n\\" + "mac=MACADDR")
stringToSign = str("GET" + os.linesep + "X-Ca-Key:" + ACCESSID + os.linesep + "X-Ca_Nonce:" + UUID + os.linesep + "X-Ca-Timestamp:" + MILLI_TIMESTAMP_STRIPPED + os.linesep + "api/open/v1/device/checkMac" + os.linesep + "mac=MACADDR")
stringToSign = str("GET" + "\n" + "X-Ca-Key:" + ACCESSID + "\n" + "X-Ca_Nonce:" + UUID + "\n" + "X-Ca-Timestamp:" + MILLI_TIMESTAMP_STRIPPED + "\n" + "api/open/v1/device/checkMac" + "\n" + "mac=MACADDR")
最后两个似乎为我提供了正确的格式:
GET
X-Ca-Key:ACCESSKEY
X-Ca_Nonce:UUID
X-Ca-Timestamp:UNIX_TIMESTAMP
api/open/v1/device/checkMac
mac=MACADDR
但应我的要求
payload = {'mac': MACADDR }
HEADERS = {"X-Ca-Key": ACCESSID, "X-Ca-Timestamp" : MILLI_TIMESTAMP_STRIPPED, "X-Ca-Nonce": UUID, "X-Ca-Signature": stringToSign,}
response = requests.get(URL_ARRAY[3], headers=HEADERS, params=payload)
请求根本不喜欢换行符,给了我 requests.exceptions.InvalidHeader:标头中的返回字符或前导空格无效:X-Ca-Signature
非常感谢您给我的任何建议,让我朝着正确的方向前进
目前没有回答
相关问题 更多 >
编程相关推荐