Python使用requests和requests_toolbelt上传文件
1、requests-toolbelt官方文档:https://pypi.org/project/requests-toolbelt/
2、环境安装
1 | pip install requests - toolbelt |
3、
multipart/form-data传文件
1 2 3 4 5 6 7 8 9 10 11 12 | 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}) |
multipart/form-data表单提交(传非文件)
1 2 3 4 5 6 7 8 9 10 | from requests_toolbelt import MultipartEncoder import requests m = MultipartEncoder( fields = { 'field0' : 'value' , 'field1' : 'value' }) r = requests.post( 'http://httpbin.org/post' , data = m, headers = { 'Content-Type' : m.content_type}) |
multipart/form-data表单提交(传图片)
1 2 3 4 5 6 7 8 9 10 11 | import requests from requests_toolbelt.multipart import MultipartEncoder image = open (r "D:\xxx.jpg" , "rb" ), # 读取模式为二进制读取方式 m = MultipartEncoder(fields = { # "file":("图片的名称.jpg","图片的二进制流","image/jpeg") "file" : ( "xxxx.jpg" , image, "image/jpeg" ) }) r = requests.post( 'http://httpbin.org/post' ,data = m,headers = { 'Content-Type' : m.content_type}) |
参数也可以使用list类型
1 2 3 4 5 6 7 8 9 10 11 12 13 | from requests_toolbelt import MultipartEncoder import requests m = MultipartEncoder( fields = [ ( 'source' , ( 'f1.ext' , f1, 'application/x-example-mimetype' ), ( 'source' , ( 'f2.ext' , f2, 'application/x-example-mimetype' ), ] ) r = requests.post( 'http://httpbin.org/post' , data = m, headers = { 'Content-Type' : m.content_type}) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?