@ddgryaz

Как правильно сделать POST запрос в Python с помощью requests?

Всем привет! Подскажите пожалуйста, есть АПИ, которое по пост запросу принимает две строки и файл изображение, выглядит это вот так:
Скриншот
6098f009e71e4533534411.png


Пытаюсь сделать как то вот так:
url = 'http://localhost:8794/api/brain'
        headers = {
            'Content-Type': 'multipart/form-data',
            'Authorization': 'Bearer tut bil token'
        }
        data = {
            'name': name,
            'img': open(name + '.jpg', 'rb'),
            'description': 'Упс'
        }

        r = requests.post(url, headers=headers, data=data)
        print(r.text)


В ответ получаю:
{"message":"Cannot destructure property `img` of 'undefined' or 'null'."}
.

То есть такой же текст сообщения, как если в Инсомнии или Постмане, я не передавал изображение.
Так же пытался отправлять отдельным диктом files, но получал такой же ответ. Подскажите, как необходимо сделать?
Спасибо!
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
1. Не передавайте content-type
2. Если вам нужен multipart/form-data, то он передается по другому, сейчас вы пытаетесь отправить application/x-www-form-urlencoded

data = {'name': (None, name), 'description': (None, 'упс'), 'img': open(name+'.jpg', 'rb')}
r = requests.post(url, files=data)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
это дескриптор img': open(name + '.jpg', 'rb'),
а тебе нужен контент

отправляй что будет в read() и т.п.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы