开发公司Python Request POST 上传文件 Multipart/form-data

项目场景:

开发公司我的第一个博客:使用python request开发公司模块向服务器接口上传图片

问题描述

某app开发公司上传图片接口的包

原因分析:

开发公司问题的关键词:请求头 Content-Type:multipart/form-data
1、开发公司常用的情况下提交数据,都是通过request.post以表单的形式向服务器提交数据的,但是根据抓包携带的请求头信息这个格式不是键值对的形式
2、根据关键词搜索了解到该请求格式为RFC1867协议,不是以表单方式提交
3、这里提一下,上传文件常用的都是将需要上传的文件以形式读入内存,有些时候根据不同的场景会将文件二进制内容进行加密,再把内容跟随一些参数一起提交至服务器中,


解决方案:

1、关于RFC1867协议的概念介绍链接:
2、关于app文件上传接口请求体格式的介绍说明请参考这个链接:
3、继续推荐:
4、关于使用request上传文件我推荐两种方式参考链接:
5、补充:我是用第二种方式上传成功的,对于第二种方式写个注意事项
需要引用模块:requests_toolbelt
安装:pip install requests_toolbelt -i https://pypi.tuna.tsinghua.edu.cn/simple

    import base64from requests import sessionfrom requests_toolbelt import MultipartEncodersessions = session()with open(file=file_path, mode='rb') as fis:    file_content = fis  # base64.b64encode().decode() 有些需要编码    files = {        'filename': filename,        'Content-Disposition': 'form-data;',        'Content-Type': 'image/jpeg',        'file': (filename, file_content, 'image/jpeg')      }    form_data = MultipartEncoder(files)  # 格式转换    sessions.headers['Content-Type'] = form_data.content_type	response = sessions.post(url=upload_img_url, data=form_data)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    注释:需要注意上传文件接口的参数,name的值,filename,Content-Type,格式: file={ ‘name的值’: (“filename”, “文件对象”, ‘内容类型’), … }
    最后在分享一个web开发的技术网站,详细的介绍了请求头的各种参数:
    手机app抓包工具推荐:小黄鸟(HTTPCanary)

    网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发