Разница в теле запроса в тесте и curl шлюза aws api - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь добавить метод POST HTTP к своему AWS API Gateway. Я использую SAM Framework с Python.

Я обнаружил, что существует разница в "теле" ответа, когда он генерируется с моего рабочего стола (curl или почтальон) и шлюза AWS API 'TEST'

Сейчас команда «POST» печатает только объект «событие», полученный lambda_handler. (Я использую объект для хранения события, как вы можете видеть ниже)

def add(self):
    response = {
        "statusCode": 200,
        "body": json.dumps(self._event)
    }
    return response

Когда я использую опцию 'TEST' консоли API Gateway, введите:

{"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>
}

Как вы думаете, почему между этими двумя тестами есть разница?

1 Ответ

0 голосов
/ 12 ноября 2018

Кажется, что Curl и Postman автоматически используют Base64 для кодирования ваших учетных данных.

Ответы одинаковы. Последний ответ является закодированным в Base64 токеном первого ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...