当前位置: 首页 > news >正文

一文详解 requests 库中 json 参数和 data 参数的用法

在requests库当中,requests请求方法,当发送post/put/delete等带有请求体的请求时,有json和data2个参数可选。

众所周知,http请求的请求体格式主要有以下4种:

application/json
applicaiton/x-www-from-urlencoded
multipart/form
application/xml
那么针对以上的请求格式,都分别使用什么参数呢?

接下来一一示例说明。

第一种:application/json

第一步:找到一个application/json请求的接口

图片

第二步:发起json格式的http请求 - 使用json参数且字典类型

图片

第二种:applicaiton/x-www-from-urlencoded

第一步:找到一个application/x-www-from-urlencoded请求的接口

图片

第二步:发起x-www-from-urlencoded格式的http请求 - 使用data参数

具体代码如下:

图片

第三种:multipart/form

第一步:找到一个multipart/form请求的上传接口

图片

第二步:发起multipart/form格式的http请求 - 使用data和files参数

图片

完整的requests处理上传接口

第四种:application/xml

第一步:设计一个xml格式的接口

现用flask设计一个简单的xml格式的登录接口,请求参数就是用户名和密码。

代码如下(在本地运行,请先安装flask库。将以下代码放在app.py当中):

from flask import Flask, request, Response
app = Flask(__name__)@app.route('/login', methods=['POST'])
def login():# 获取请求体中的XML数据xml_data = request.data# 解析XML数据,提取用户名和密码try:import xml.etree.ElementTree as ETroot = ET.fromstring(xml_data)username = root.find('username').textpassword = root.find('password').textexcept Exception:# 解析失败,返回错误响应response_xml = '0请求格式错误'return Response(response_xml, mimetype='text/xml')# 验证用户名和密码if username == 'python' and password == '1234567890':# 登录成功,返回成功响应        response_xml = '1成功1001'else:# 登录失败,返回失败响应response_xml = '-1用户名或密码错误'return Response(response_xml, mimetype='text/xml')if __name__ == '__main__':app.run()

请求的数据xml格式如下:

<login><username>python</username><password>1234567890</password>
</login>

响应的数据xml格式如下:

<response><code>1</code><message>成功</message><userid>1001</userid>
</response>

在本地pycharm中,使用python app.py运行这个服务,

图片

第二步:发起xml格式的http请求 - 使用data参数

data是字符串类型,且是xml格式的数据。

图片

图片

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

http://www.lryc.cn/news/150588.html

相关文章:

  • Django学习笔记-AcApp端授权AcWing一键登录
  • 如何在小红书进行学习直播
  • F5服务器负载均衡能力如何?一文了解
  • Ubuntu18.04安装docker-io
  • 代码随想录笔记--栈与队列篇
  • 【力扣】55. 跳跃游戏 <贪心>
  • 在iPhone 15发布之前,iPhone在智能手机出货量上占据主导地位,这对安卓来说是个坏消息
  • 题目:2620.计数器
  • 【MySQL】MySQL系统变量(system variables)列表(SHOW VARIABLES 的结果例)
  • 【多AZ】浅述云计算多az
  • Element浅尝辄止13:Collapse 折叠面板
  • 51 单片机包含头文件 BIN51.H 直接写二进制数字
  • php环境搭建步骤(与资源配套使用版)
  • java 集合处理:
  • 算法训练第五十二天
  • LeetCode——回溯篇(三)
  • Python爬取京东商品评论
  • ROS机器人编程---------(一)安装ROS
  • Maven入门教程(一):安装Maven环境
  • CSS中可继承与不可继承属性
  • Vscode画流程图
  • 【K8S系列】深入解析k8s网络插件—Cilium
  • OpenCV(十六):高斯图像金字塔
  • Nginx配置及优化3
  • 网络直播源码UDP协议搭建:为平台注入一份力量
  • Ubuntu/linux系统环境变量配置详解
  • kafka配置SASL/PLAIN 安全认证
  • pdf加密如何解除?这样解除加密很简单
  • Ubuntu18.04使用Systemback制作系统镜像并还原
  • OpenCV(十五):拷贝图像