0

У меня есть этот запрос cURL, который я хочу преобразовать в код запроса Python.Невозможно загрузить файл в REST API

содержание скручиваемость

curl -H "X-PrettyPrint: 1" 
    -F 'json={"title":"PandaTest"};type=application/json' 
    -F "[email protected];type=application/octet-stream" 
    -X POST https://cs31.salesforce.com/services/data/v39.0/connect/files/users/me 
    -H 'Authorization: 00Dp000000.....CqqU0.S_5r' --insecure 

Для более подробной информации о запросе проверить документы Salesforce он содержит сообщение запроса HTTP - here. Искать в разделе Upload a file to the Files home.

Питон счетчик часть его, что я написал это

import requests 

files = { 
      "fileData" : open("rename.py", "rb"), 
      "json" : '{"title":"PandaTest"}' 
     } 

headers = { 
       'Authorization': 'OAuth 00Dp00000000u....n3ZGuoZK2wYJRCqqU0.S_5r', 
       "Content-Disposition": "form-data 'fileData'" 
      } 

r = requests.post('https://cs31.salesforce.com/services/data/v39.0/connect/files/users/me/', 
        data=files, headers=headers) 
data = json.loads(r.text) 

print data 

Мой запрос успешно отправлен, но я получаю сообщение об ошибке Missing expected "fileData" binary parameter .I есть ощущение запрос, который я пытаюсь отправить не правильно сформирован. Где именно я ошибся?

У меня такое чувство, что я неправильно обрабатываю 2 -F в запросе cURL.

+0

является файлом, который должен быть фактическими данными файла или именем файла? – MattCorr

ответ

0

Эта линия:

"fileData" : open("rename.py", "rb"), 

устанавливает «имя_файла» на объект, который возвращается при открытии файла. Если вы хотите «имя_файла» будет реальное содержимое файла, а затем измените строку следующим образом:

"fileData" : open("rename.py", "rb").read(), 

Это будет читать все байты в файле и установить «имя_файла» им.

+0

Я пробовал даже это. Но это не помогло. – JRodDynamite