首页 > 编程语言 >Python之requests模块-大文件上传

Python之requests模块-大文件上传

时间:2022-11-14 18:34:02浏览次数:50  
标签:Python data void file import path requests 上传

最近在做接口测试时,拿到一个分片上传文件的接口,http接口请求头中的Content-Type为multipart/form-data。需要在客户端将大文件分片成数据块后,依次传给服务端,由服务端还原成大文件,此外,为了确保传输后的数据是完整的,客户端会在分片前,根据原文件生成md5值并被携带在每次的http请求中,服务端在还原文件后会进行校验。

如何使用requests模块,实现上述接口测试的需求呢?首先,需要将问题分解:

  1. requests如何传输Content-Type为multipart/form-data的数据?
  2. 如何根据原文件生成md5值?
  3. 如何将大文件分片成数据块?

本文将逐一为大家解答。

发送multipart/form-data请求

这里需要用到辅助库requests_toolbelt,使用MultipartEncoder类创建一个multipart/form-data类型的data充当请求体。此外,我们请求头中的Content-Type除了multipart/form-data还需生成boundary,如下例所示:

[复制代码](javascript:void(0)

标签:Python,data,void,file,import,path,requests,上传
From: https://www.cnblogs.com/hanfe1/p/16889937.html

相关文章

  • Python实验报告(第11周)
      实验11:模块一、实验目的和要求1、学会自定义模块;2、学会引用其他模块;3、学会创建和使用包。二、实验环境软件版本:Python3.1064_bit三、实验过程1、实例1:......
  • python-错误和异常-常见错误
    1.无效语法#coding=utf-8;a=“python”;printa;运行结果:a=“python”;^SyntaxError:invalidsyntax分析:“”使用的是中文格式。2.ZeroDivisionEr......
  • Python代码写得丑怎么办?推荐几个神器拯救你
    Python编程语言需要遵循PEP8规范,但是初学者往往记不住这个规范,代码写得比较丑。本文推荐几个神器来拯救奇丑无边的python代码。一、Jupyternotebook篇Jupyternotebook的......
  • 巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from
    一.今日主要内容总览(重点)1.生成器(目的:帮助我们创建对象)(1)生成器的本质就是迭代器(2)一个一个的创建对象(3)创建生成器的方式:1.生成器函数......
  • 两行代码完成特征工程-基于Python的特征自动化选择代码(提供下载)
    实现的功能该选择器基于Python编写,有五种方法来标识要删除的特征:缺失值唯一值共线特征零重要性特征低重要性特征使用方法 特征选择器(FeatureSelector)的用法在这个Jupyter......
  • AI基础:Python开发环境设置和小技巧
    0.导语本文总结了Windows下Python环境的安装,包括Anaconda、Jupyternotebook和Pycharm的安装和基本使用技巧,方便初学者搭建Python环境。这个是AI基础的必备步骤。目前已经发......
  • Python使用zipfile模块压缩目录(包含空目录)、压缩文件、解压文件
    主要功能:压缩目录、压缩文件、解压文件importosimportzipfile#压缩目录、或文件defzip(srcPath=None,zipFilePath=None,includeDirInZip=True):ifnotzi......
  • 06python序列
    数据结构是Python中一个很重要的概念,是以某种方式(如通过编号)组合起来的数据元素(如数字、字符乃至其他数据结构)的集合。在Python中,最基本的数据结构是序列(sequence)。......
  • 【Python基础】快速入门Python(讲解、习题)
    0.导语Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于......
  • Python用yield form 实现异步协程爬虫
    很古老的用法了,现在大多用的aiohttp库实现,这篇记录仅仅用做个人的协程底层实现的学习。争取用看得懂的字来描述问题。1.什么是yield如果还没有怎么用过的话,直接把yield......