使用python请求上传二进制文件

bSr*_*bSr 8 python-requests postman

我正在使用下面的请求库上传文件是代码:

files = {'file': open(full_file_name, 'rb')}
headers = {"content-type": 'application/x-www-form-urlencoded'}
final_resp = requests.put(loc, files=files, headers=headers)
Run Code Online (Sandbox Code Playgroud)

问题是一些额外的内容已添加到文件的起点和终点。

添加到起点的内容是:

--b16010ae7646a031a5adc64ac0661e72
Content-Disposition: form-data; name="file"; filename="1016064585-65769268.csv"
Run Code Online (Sandbox Code Playgroud)

添加到端点的内容是:

--b16010ae7646a031a5adc64ac0661e72--

但是当相同的文件通过邮递员上传时,这些问题就不会出现。

这是邮递员的截图 在此处输入图片说明.

邮递员的头是:

应用程序/x-www-form-urlencoded

小智 15

这可能是因为您使用 multipart/form 上传文件。尝试使用如下代码所示的数据

data = open(localFilePath, 'rb').read()
headers = {
    "Content-Type":"application/binary",
}
upload = requests.put(uploadUrl,data=data,headers=headers)
Run Code Online (Sandbox Code Playgroud)