我想使用请求发送文件,但服务器在处设置了固定边界*****
。我只能发送文件,但是requests
模块会创建随机边界。我该如何覆盖它?
import requests
url='http://xxx.xxx.com/uploadfile.php'
fichier= {'uploadedfile':open('1103290736_2016_03_23_13_32_55.zip','rb')}
headers2={'Connection':'Keep-Alive','User-Agent':'Dalvik/1.6.0 (Linux; U; Android 4.4.2; S503+ Build/KOT49H)','Accept-Encoding':'gzip'}
session= requests.Session()
session.post(url,headers=headers2,files=fichier)
session.close()
男孩,那是一台非常破损的服务器。如果可以,请修复服务器。
您无法确定选择requests
哪个边界。您可以改为建立自己的multipart/form-data
有效载荷,使用email.mime
包:
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
related = MIMEMultipart('form-data', '*****') # second argument is the boundary.
file_part = MIMEApplication(
open('1103290736_2016_03_23_13_32_55.zip', 'rb').read(),
# optional: set a subtype: 'zip',
)
file_part.add_header('Content-disposition', 'form-data; name="uploadedfile"')
related.attach(file_part)
body = related.as_string().split('\n\n', 1)[1]
headers = dict(related.items())
headers['User-Agent'] = 'Dalvik/1.6.0 (Linux; U; Android 4.4.2; S503+ Build/KOT49H)'
r = session.post(url, data=body, headers=headers)
这将设置Content-Type: multipart/form-data; boundary="*****"
为标题,而正文将*****
用作边界(带有适当的--
前缀和后缀)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句