#python #json #python-requests
#python #json #python-запросы
Вопрос:
Я хочу отправить json с POST-запросом на определенную конечную точку на мой сервер в pytest.
Это то, что я обычно передаю серверу с помощью curl:
curl --header "Content-Type: application/json" --request POST --data '{"item":"ZycugK6yXdHgf8foQTUnKY.txt","method":"one"}' 0.0.0.0:5000/convert
И вот как я попытался воссоздать его в pytest:
data = {"item": filename, "method": method}
response = client.post('/convert', content_type='application/json', data=data)
Где имя файла и параметры метода принимаются в качестве входных данных для функции (пересылаются декоратором).
Однако я продолжаю получать a 400 - Bad Request
, что означает, что я делаю что-то не так с моим запросом.
Ответ №1:
Я думаю, это сработает:
data = {"item": filename, "method": method}
response = client.post('/convert', content_type='application/json', data=json.dumps(data))
Вам нужно сериализовать данные.
Ответ №2:
Это зависит от клиента, который вы используете. Например requests
, вы могли бы использовать просто
response = client.post("/convert", json=data)