小编use*_*235的帖子

如何将内容处置标头设置为文件部分的附件?

我正在使用 Python requests 模块发送包含表单数据和文件附件的多部分 HTTP POST 请求。

每个多部分对象的“Content-disposition”标头设置为“form-data”,包括文件部分。

我需要表单数据部分的“Content-disposition”标头仍然显示“form-data”,但文件部分的“Content-disposition”标头必须显示“attachment”而不是“form-data”。

如何仅更改文件部分的内容处置标头?

我的代码:

#Python 3.7.3 (default, Apr 24 2019, 13:20:13) [MSC v.1915 32 bit (Intel)]
import requests

#USER PARAMETERS
user_name = 'user_account'
password = 'user_password'
token = '45Hf4xGhj'

#REQUESTS PARAMETERS
url = '192.168.0.2'
headers = {'content-type': 'multi-part/form-data'}
data = {'Username':user_name, 'Password':password, 'Token':token}
files = {'settings': ('settings.xml', open('settings.xml', 'rb'), 'app/xml')}

#POST
response = requests.post(url, headers=headers, data=data, files=files)
Run Code Online (Sandbox Code Playgroud)

Python 请求中文件部分的标头如下所示:

Content-Type: app/xml
Content-Disposition: form-data; name="settings"; filename="settings.xml"
Run Code Online (Sandbox Code Playgroud)

这就是我需要的文件部分的标题:

Content-Type: app/xml
Content-Disposition: attachment; name="settings"; filename="settings.xml"
Run Code Online (Sandbox Code Playgroud)

我还尝试通过向文件添加标头参数来更改标头: …

python content-disposition python-requests

6
推荐指数
1
解决办法
2万
查看次数