网站首页 > 开源技术 正文
在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处理上传接口,请参看文章:
http://testingpai.com/article/1611909535724
第四种: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 ET
root = ET.fromstring(xml_data)
username = root.find('username').text
password = root.find('password').text
except Exception:
# 解析失败,返回错误响应
response_xml = '<response><code>0</code><message>请求格式错误</message></response>'
return Response(response_xml, mimetype='text/xml')
# 验证用户名和密码
if username == 'python' and password == '1234567890':
# 登录成功,返回成功响应
response_xml = '<response><code>1</code><message>成功</message><userid>1001</userid></response>'
else:
# 登录失败,返回失败响应
response_xml = '<response><code>-1</code><message>用户名或密码错误</message></response>'
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格式的数据。
猜你喜欢
- 2025-06-04 python用requests BeautifulSoup下载网页到txt并去掉html标记
- 2025-06-04 测试进阶:实现跨请求地保持登录的神器session你get了么?
- 2025-06-04 Requestium一个比Requests跟实用的python库
- 2025-06-04 Python模拟登入的N种方式,总有一种方式适合你(建议收藏)
- 2025-06-04 RobotFramework之http接口测试库RequestsLibrary使用介绍(十)
- 2025-06-04 Kafka Producer 参数 max.in.flight.requests.per.connection 配置
- 2025-06-04 如何搭建接口自动化测试框架?(接口自动化测试框架设计)
- 2025-06-04 python编程实践:网络爬虫,从学习Requests 模块开始
- 2025-06-04 Python爬虫5 requests库get、post的使用
- 2025-06-04 Python-实战-requests库标准入门姿势
你 发表评论:
欢迎- 最近发表
-
- 后端服务太慢?试试这 7 招(后端 服务端 区别)
- 做一个适合二次开发的低代码平台,把程序员从curd中解脱出来-1
- Caffeine缓存 最快缓存 内存缓存(caffeine缓存使用)
- Java性能优化的10大策略(java性能调优从哪几个方面入手)
- New Balance M576PGT 全新配色设计
- x-cmd pkg | qrencode - 二维码生成工具
- 平和精英抽奖概率是多少 平和精英抽奖物品一览
- x-cmd pkg | tmux - 开源终端多路复用器(terminal multiplexer)
- 漫威官方App中文版上线:全站漫画限时免费
- macOS Monterey 12.7.4 (21H1123) 正式版发布,ISO、IPSW、PKG 下载
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)