Отправка файла с помощью REST API: от примера curl до кода Python - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь закодировать загрузку файла в веб-сервис через REST API в Python.В документации службы приведен пример использования curl в качестве клиента:

curl -X POST -H \
-H "Content-Type: multipart/form-data" \
-F "file=filename.ext" \
-F "property1=value1" \
-F "property2=value2" \
-F "property3=value3" \
https://domain/api/endpoint

Сложность для меня заключается в том, что этот синтаксис не соответствует найденным мною составным примерам данных форм, включая документацию requests.Я попытался это, что не работает (отклонено API):

import requests

file_data = [
    ("file", "filename.ext"),
    ("property1", "value1"),
    ("property2", "value2"),
    ("property3", "value3"),
]

response = requests.post("https://domain/api/endpoint",
    headers={"Content-Type": "multipart/form-data"}, files=file_data)

С ошибкой: "org.apache.commons.fileupload.FileUploadException: запрос был отклонен, так как не было найдено многокомпонентной границы"

Кто-нибудь может помочь перенести этот пример curl в правильный код Python?

Спасибо!

R.

1 Ответ

0 голосов
/ 01 июня 2018

ОК, похоже, что документация по веб-сервисам неверна, и метаданные просто необходимо отправить в качестве параметров.Более того, я обнаружил в другом запросе, что вы не должны устанавливать заголовок.Поэтому я начал с неправильного примера.

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