- #coding=utf-8
- import requests
- from requests_toolbelt import MultipartEncoder
- #requests 库上传
- files = {"username": (None, "billy"), "password": (None, "abcd1234"),
- 'picUrl': ('pic.png', open('E:/download/pic.png', 'rb'), 'image/png')}
- # 如需 headers, 不需要赋值 Content-Type, 不然可能会报错
- res = requests.post(url=" ", files=files)
- print(res.request.headers)
- # 上传文件
- m = MultipartEncoder(
- fields={'key1': 'value1', 'key2': 'value2',
- 'file': ('png_name', open('filename.png', 'rb'), 'text/plain')})
- response = requests.post('http://httpbin.org/post', data=m,
- headers={'Content-Type': m.content_type})
- # pip install poster
- """ 上述数据在 requests 里面可以模拟为:
- files={'app_id':(None,'123456'),
- 'version':(None,'2256'),
- 'platform':(None,'ios'),
- 'libzip':('libmsc.zip',open(r'C:\gers\danwang3\Desktop\libmsc.zip','rb'),'application/x-zip-compressed')
- }
- 发送上述 post 请求, 也就是简单的
- response=requests.post(url,files=files)
- 就这么简单
- 在官方网站上, requests 模拟一个表单数据的格式如下:
- files = {'name': (<filename>, <file object>,<content type>, <per-part headers>)}
- 这一行模拟出来的 post 数据为:
- Content-Disposition: form-data; name='name';filename=<filename>
- Content-Type: <content type>
- """
来源: http://www.bubuko.com/infodetail-3098942.html