最近在接入其他接口的时候, 要发送 form-data 的数据, 以为就是将在 headers 中添加一下 Content-Type 为 multipart/form-data, 可能是我太天真了, 添加之后把传入的数据都整没了, 很是痛苦. 于是四处找资料, 终于找到了以下两种方案, 提供给有需要的同志们.
- requests
- requests_toolbelt
- from requests_toolbelt import MultipartEncoder
- import requests
- m = MultipartEncoder(
- fields={'field0': 'value',
- 'field1': 'value',
- 'field2': ('文件名称', open('文件地址 / file.py', 'rb'), 'text/plain')}
- )
- r = requests.post('http://httpbin.org/post',
- data=m,
- headers={'Content-Type': m.content_type})
- urlib3
- encode_multipart_formdata
- from urlib3 import encode_multipart_formdata
- import requests
- m = encode_multipart_formdata()
- r = requests.post('http://httpbin.org/post',
- data=m[0],
- headers={'Content-Type': m[1]})
来源: https://segmentfault.com/a/1190000040034749