python上传文件接口怎么写,python自动生成接口文档
在接口测试中,经常会涉及到文件上传和下载。下面这篇文章主要介绍Python接口自动化的文件上传/下载接口的相关信息。通过示例代码介绍的非常详细,有需要的朋友可以参考一下。
00-10100,前言1,文件上传接口1,接口文档2,代码实现2,文件下载接口1,接口文档2,代码实现总结
目录
上传/下载界面与通用界面相似,但也有细微的区别。
如果需要向服务器发送文件,比如上传文档、图片、视频等。需要发送二进制数据。上传的文件通常使用Content-Type 3360 multipart/form-data数据类型,您可以发送文件或相关的消息正文数据。
相反,文件下载是指将响应内容以二进制格式存储在本地,并根据要下载的文件的格式写入文件名,例如:F:/契约file.pdf。
、前言
一、文件上传接口
请求URL: /createbyfile
申请方式:邮寄
内容类型:多部分/形式数据
名字一定要描述吗?fileFile是文档文件标题String是文档名称fileTypeString是文件类型:doc、docx、txt、pdf、png、gif、jpg、JPEG、tiff、html、rtf、xls、txt。
1. 接口文档
(1)实施步骤:
构造文件数据,通过open函数以二进制方式打开文件。
文件上传接口参数和普通的post请求一样,需要以键和值的方式编写。Key是参数名文件(也是组件的名称属性),Value是一个元组(不同于普通接口)。
文件‘:(
,# tuple的第一个值是文件名;如果不是,那也没什么。
Open (r F:\pdf_file.pdf , rb ),#如果第一个值不为None,则取文件打开的二进制流,否则直接写文件路径,如 F:\pdf_file.pdf
Pdf #文件类型
)
文件‘:(
没有,
F:\pdf_file.pdf
)
构建其他数据
{
由“标题”:“接口”发起的文档,
文件类型 : pdf
}
Send,文件数据作为files参数传入,其他消息体数据通过data、json、headers、cookies等传入。
req={
URL : 127 . 0 . 0 . 1/v2/document/create by file ,
方法 : POST :
邮件头 : {},
files: {file:(),open(rF:\pdf_file.pdf , rb ), pdf)},
数据 : {
由“标题”:“接口”发起的文档,
文件类型 : pdf
}
}
(2)完整的代码
base_a
pi.py
import requestsclass BaseApi:
@staticmethod
def requests_http(req):
# ** 解包
result = requests.request(**req)
return result
api/createbyfile.py
# -*- coding:utf-8 -*-# 作者:IT小学生蔡坨坨
# 时间:2022/3/12 21:04
# 功能:根据文件类型创建合同文档
from base_api import BaseApi
class Createbyfile:
def createbyfile(self):
req = {
"url": "127.0.0.1/createbyfile",
"method": "POST",
"headers": {},
"files": {"file": ("", open(r"F:\pdf_file.pdf", "rb"), "pdf")},
"data": {
"title": "接口发起的文档",
"fileType": "pdf"
}
}
res = BaseApi().requests_http(req)
assert res.status_code == 200
res_json = res.json()
return res_json["result"]["documentId"]
if __name__ == __main__:
Createbyfile().createbyfile()
二、文件下载接口
1. 接口文档
Request URL:/download
Request Method:GET
2. 代码实现
# -*- coding:utf-8 -*-# 作者:IT小学生蔡坨坨
# 时间:2022/4/5 2:56
# 功能:下载合同
from base_api import BaseApi
class Download:
def download(self):
req = {
"url": "127.0.0.1/download",
"method": "GET",
"headers": {},
"params": {
"contractId": 2947403075747869536,
"downloadItems": ["NORMAL"],
"needCompressForOneFile": False
},
}
res = BaseApi().requests_http(req).content # 注意“.content"获取返回内容
# with open("F:/response.zip", "wb") as f:
with open("F:/response.pdf", "wb") as f:
f.write(res)
return res
if __name__ == __main__:
Download().download()
总结
到此这篇关于Python接口自动化之文件上传/下载接口的文章就介绍到这了,更多相关Python文件上传/下载接口内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。