我正在尝试将 POST HTTP 方法添加到我的 AWS API 网关。我在 Python 中使用 SAM 框架。
我发现从我的桌面(curl 或 postman )和 AWS API 网关“TEST”生成的响应的“正文”有所不同
现在,“POST”命令仅打印 lambda_handler 接收到的“事件”对象。 (我正在使用一个对象来存储事件,如下所示)
def add(self):
response = {
"statusCode": 200,
"body": json.dumps(self._event)
}
return response
当我使用 API 网关控制台的“测试”选项时,输入:
{"username":"xyz","password":"xyz"}
我收到以下输出:
{
"body": "{\"username\":\"xyz\",\"password\":\"xyz\"}",
<the rest of the response>
}
但是,当我发送 curl(或 postman )请求时:
curl --header "Content-Type: application/json" --request POST --data '{"username":"xyz","password":"xyz"}' <aws api gateway link>
我得到以下响应:
{
"body": "eyJ1c2VybmFtZSI6Inh5eiIsInBhc3N3b3JkIjoieHl6In0="
<the rest of the response>
}
为什么您认为这两个测试之间存在差异?
最佳答案
Curl 和 Postman 似乎会自动对您的身份验证凭据进行 Base64 编码。
答案是一样的。后一个响应是第一个响应的 Base64 编码 token 。
关于amazon-web-services - aws api网关测试和curl中请求正文的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53256069/