项目场景:

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

问题描述

某app上传图片接口的包

原因分析:

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


解决方案:

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

import base64
from requests import session
from requests_toolbelt import MultipartEncoder
sessions = 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_typeresponse = sessions.post(url=upload_img_url, data=form_data)

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

Python Request POST 上传文件 Multipart/form-data相关推荐

  1. python模拟浏览器上传文件_Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)...

    http协议本身的原始方法不支持multipart/form-data请求,这个请求由原始方法演变而来的. multipart/form-data的基础方法是post,也就是说是由post方法来组合实 ...

  2. 爬虫之上传文件,request如何上传文件

    爬虫之上传文件,request如何上传文件,当我们遇到需要上传文件的接口时,如何破解上传文件的密码呢? 如图,文件的参数名files[],传输多张图片,那如何用python实现呢? 1.方法1:使用r ...

  3. Python使用FTP上传文件

    Python使用FTP上传文件 本文主要介绍如何使用Python通过FTP上传文件. FTP简介 FTP即文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一种 ...

  4. 西游之路——python全栈——上传文件

    1 from django.shortcuts import render,HttpResponse 2 3 def upload(request): 4 if request.method == ' ...

  5. http 协议上传文件multipart form-data boundary 说明--转载

    原文地址:http://xixinfei.iteye.com/blog/2002017 含义 ENCTYPE="multipart/form-data" 说明:  通过 http ...

  6. javascript构造可以上传文件的form表单(通过js修改enctype)

    在上传文件时,我们都知道需要在form表单中加上enctype="multipart/form-data".而在开发过程中,也有可能遇到需要用javascripts构造form表单 ...

  7. python调用接口上传文件_python上传文件接口

    文件的参数组装: ('文件名',"open打开的文件(rb模式打开)",'文件的类型说明') 关于不同的请求参数类型,使用requests的处理: 1.文件上传(Content-T ...

  8. part.write java_小白向:web中利用request.getPart()上传文件到服务器

    被文件上传弄得焦头烂额的一天,果然web中的路径和各种设置真的好讨厌= = 下面是超级小白的.及其简约的"详"解 1.明确目的: 用户将 1.txt 文件 上传到 服务器(web工 ...

  9. python调用接口上传文件_python接口自动化7-post文件上传

    前言 文件上传在我们软件是不可少的,最多的使用是体现在我们后台,当然我们前台也会有.但是了解过怎样上传文件吗?这篇我们以禅道文档-创建文档,上传文件为例. post请求中的:Content-Type: ...

最新文章

  1. 平面设计师如何训练自己创意思维
  2. Service order save debug for distribution lock set logic
  3. [css] 说说sroll-snap-type属性的运用场景有哪些?相关联的属性还有哪些?
  4. 使用引用的方式交换数据的数值
  5. Python通过LDAP验证、查找用户(class,logging)
  6. GraphQL到底怎么用?看看这个例子就知道了
  7. Dijkstra算法(matlab实现)
  8. 重装系统后,一直卡在天涯若比邻蓝屏
  9. 【win10 企业版 LTSC一键安装微软应用商店Microsoft Store】直接使用GitHub上的开源项目,不用自己敲命令(亲测有效),附卸载工具
  10. Python迭代器基本方法iter()及其魔法方法__iter__()原理详解
  11. 策略性发疯_如何使自己的房屋“智能”而不发疯
  12. android studio(as)找不到手机
  13. C/C++ 引用作为函数的返回值
  14. Adobe国际认证证书是个什么东东,有什么用啊?
  15. 关于自考 我想说这些
  16. 力扣今日打卡数独解答
  17. 复制知乎专栏文章的方法
  18. 电脑屏幕仅计算机,一台主机有两个显示屏,计算机只能检测到一个,而另一台则显示黑屏...
  19. 计算机又坏了,第二次回家
  20. PEID Autism专版绿色版

热门文章

  1. Openwrt无线管理工具/命令
  2. PLC模拟量输入 模拟量转换FC S_ITR
  3. 10个精选一线互联网架构思考与实践
  4. matlab插值与拟合(命令与示例),matlab插值与拟合(命令与示例)
  5. 皮秒 纳秒 微秒 毫秒 秒 ps、ns、us、ms、s 时间单位之间的换算
  6. 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏
  7. oracle常用日期格式,ORACLE常用日期数据格式
  8. [译]深入ES6之箭头函数
  9. 飞信消息通道服务器,和飞信_服务中心_中国移动通信
  10. db2 - 统计上一月,前两周的数据