0

我有这个 cURL 请求,我想将其转换为 Python 请求代码。

卷曲内容是

curl -H "X-PrettyPrint: 1" 
     -F 'json={"title":"PandaTest"};type=application/json' 
     -F "fileData=@rename.py;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

有关请求的更多详细信息,请查看包含 HTTP 请求消息的 SalesForce 文档 -此处。搜索部分Upload a file to the Files home

我写的Python计数器部分是

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。我感觉我尝试发送的请求格式不正确。我到底哪里错了?

我感觉我没有-F正确处理 cURL 请求中的 2 。

4

1 回答 1

0

这一行:

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

将“fileName”设置为打开文件时返回的对象。如果您希望“fileName”成为文件的实际内容,则将该行更改为:

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

这将读取文件中的所有字节并将“fileName”设置为它们。

于 2017-02-16T15:16:48.707 回答