使用python urllib2中的AWS授权创建POST请求/请求

时间:2018-11-27 13:59:41

标签: python-2.7 amazon-web-services postman urllib2

我正在尝试使用AWS授权在python中实现POST请求

enter image description here

这是我要发送的邮件

{
  "inputText": "expand"
}

当我检查代码时,它以邮递员代码显示

import requests

url = "https://runtime.lex.us-east-1.amazonaws.com/bot/amgenTestBot/alias/version_a/user/aUniqueUserID/text"

payload = ""
headers = {
'content-type': "application/x-www-form-urlencoded",
'host': "runtime.lex.us-east-1.amazonaws.com",
'x-amz-date': "20181127T134404Z",
'authorization': "AWS4-HMAC-SHA256 Credential=AKIAJVHJC2AO36FPJXFQ/20181127/us-east-1/lex/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=e265ea88b0c6481467962a324c96184314d6c3941589eead70bb8b83c85e391a",
'cache-control': "no-cache",
'postman-token': "8155c307-8a9f-61e0-37b9-2015b7fcf713"
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

但是生成的代码包含的有效负载为空,因为它正在使用SHA256生成签名。我不知道创建签名需要考虑什么所有参数,因为我只有访问密钥,秘密密钥,AWS区域和服务名称以及上述主体。

POSTMAN自己创建标题。有没有办法通过python requests / urllib以编程方式实现这一目标。

我无法通过AWS身份验证找到任何内容

0 个答案:

没有答案