import requests
from requests_toolbelt import MultipartEncoder
encoder = MultipartEncoder({\'field\': \'value\',
\'other_field\', \'other_value\'})
r = requests.post(\'https://httpbin.org/post\', data=encoder,
headers={\'Content-Type\': encoder.content_type})
这是官方的例子,大概就是MultipartEncoder参数是一个字典,字典中存入文件名和文件内容
通常情况下,我们传入的文件内容是open文件后的对象
这是我们公司的上传方法
def uploadProduct(filename, binary, meta=None, area=\"100000\"):
data = MultipartEncoder(fields={
\'file\': (filename, binary.getvalue(), \'text/xml\'),
})
groupName = config.PRODUCT_GROUP_MAPPER[area]
rsp = requests.post(\'%s/%s\' % (config.PRODUCT_SERVICE_URL, groupName), data=data, headers={
\'Content-Type\': data.content_type})
if rsp.status_code == 200:
return True, rsp.content
else:
return False, rsp.content
其中filename是需要上传的文件名,需要注意的是,这个文件名不是文件的完整路径,binary是文件的二进制流,”text/xml“是上传文件的类型
然后调用上传接口,将MultipartEncoder对象以参数的形式赋给post请求
来源:https://www.cnblogs.com/yqkhm/p/15992831.html
本站部分图文来源于网络,如有侵权请联系删除。