我正在尝试向我的AWS API Gateway添加POST HTTP方法。我正在使用SAM框架和Python。
我发现从我的桌面(curl或邮递员)和AWS API Gateway“ TEST”生成响应时,响应的“正文”有所不同
现在,“ POST”命令仅打印由lambda_handler接收的“事件”对象。 (我正在使用一个对象来存储事件,如下所示)
def add(self):
response = {
"statusCode": 200,
"body": json.dumps(self._event)
}
return response
当我使用API Gateway控制台的“ TEST”选项时,输入:
{"username":"xyz","password":"xyz"}
我收到以下输出:
{
"body": "{\"username\":\"xyz\",\"password\":\"xyz\"}",
<the rest of the response>
}
但是,当我发送curl(或邮递员)请求时:
curl --header "Content-Type: application/json" --request POST --data '{"username":"xyz","password":"xyz"}' <aws api gateway link>
我收到以下答复:
{
"body": "eyJ1c2VybmFtZSI6Inh5eiIsInBhc3N3b3JkIjoieHl6In0="
<the rest of the response>
}
您为什么认为两种测试之间有区别?
答案 0 :(得分:2)
Curl和Postman似乎是自动通过Base64编码的身份验证凭据。
响应是相同的。后一个响应是第一个响应的Base64编码令牌。