Реплицируйте POST-запрос почтальона (метаданные и загрузка файла) в Python - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь выполнить запрос POST, включая загрузку локального файла с помощью python.

Я посмотрел много подобных запросов здесь, но ни один не работал для меня, или ни один не был достаточно конкретным, чтобы помочь мне.

С Почтальоном все работает как положено и без всяких проблем. Но, представляя то же самое с питоном, я не могу этого достичь. Я безуспешно пробовал различные комбинации словарей params, body и file

Вот как выглядит тело запроса рабочего почтальона: Postman: RequestBody

Вот как были настроены параметры этого запроса почтальона: Postman Params Это мой код Python

metadata = {
    "name":"MyFile" , 
    "type":"myFileType" ,
    "parentId":"1cc58622-3bc0-4fc4-a222-a64bd8d90af1"
    }

fileForUpload = {'upload_file': open("/home/myuser/blablabla/testfile.jpg)", "rb")}

params = {"metadata":json.dumps(metadata), "file": "filename"}
headers = {
    "content-type": "application/json", 
    "Authorization": 'Bearer ' + token,
    "accept-encoding": "gzip, deflate"
    }
response = requests.post(url, headers = headers, params = params, files = fileForUpload)

Я получаю сообщение об ошибке конечной точки API, утверждая, что отсутствует параметр файла ...

Есть идеи, что я делаю не так?

...