如何基于Python + requests实现发送HTTP请求
作者:Treasure丶丶 发布时间:2022-04-17 09:27:09
标签:Python,requests,HTTP,请求
这篇文章主要介绍了如何基于Python + requests实现发送HTTP请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、在接口自动化测试过程中,存在两种情况:
一种是不需要鉴权的接口,可以直接访问的。
还有一种情况是需要鉴权才可以访问的接口。
这里我们通过Python + requests 实现这两种发送请求的方法
"""
============================
author:Treasure丶
time:2019/11/28
E-mail:1247814617@qq.com
发送Http请求的方法
============================
"""
import requests
class HttpRequest(object):
"""不记录任何的请求方法"""
@classmethod
def request(cls, method, url, data=None, headers=None): # 这里分别需要传人
method = method.upper() # 这里将传入的请求方法统一大写,然后进行判断采用什么方法
if method == 'POST':
return requests.post(url=url, data=data, headers=headers)
elif method == 'GET':
return requests.get(url=url, params=data, headers=headers)
return f"目前没有{method}请求方法,只有POST和Get请求方法!"
# 指定位置传参的话,get方法里是叫params,和post方法里的不一样哦!
class HttpSession(object):
"""记录Session的方法"""
def __init__(self):
self.session = requests.session() # 初始化一个保存session的方法
def request(self, method, url, data=None, headers=None):
method = method.upper()
if method == 'POST':
return self.session.post(url=url, data=data, headers=headers)
elif method == 'GET':
return self.session.get(url=url, params=data, headers=headers)
def close(self):
"""断开session连接的方法"""
self.session.close()
if __name__ == '__main__':
http = HttpSession()
http_one = http.request(method='post', url=r'http://test.lemonban.com/futureloan/mvc/api/member/login',
data={"mobilephone": '17685598021', "pwd": '123456'}).json() # 登录接口
http_two = http.request(method='post', url=r'http://test.lemonban.com/futureloan/mvc/api/member/recharge',
data={"mobilephone": "17685598021", "amount": 50000}).json() # 充值接口
print(http_one)
print(http_two)
运行结果:
http_one = {'status': 1, 'code': '10001', 'data': None, 'msg': '登录成功'}
http_two = {'status': 1, 'code': '10001',
'data': {'id': 133171, 'regname': '歪歪', 'pwd': 'E10ADC3949BA59ABBE56E057F20F883E', 'mobilephone': '17685598021',
'leaveamount': '647200.00', 'type': '1', 'regtime': '2019-09-01 12:28:03.0'}, 'msg': '充值成功'}
这里用充值接口来举例,所以我们直接使用的是记录Session信息的HTTP请求方法,
因为充值接口是不可以直接请求成功的,是需要用户先登录,然后获取登录后的Session信息,然后将用户信息和Session信息一同发送给充值接口,才能充值成功!否则会提醒先登录。
我们这里是将返回数据以json格式显示,看起来像字典,也比较清晰!
来源:https://www.cnblogs.com/Super-Treasure/p/12180816.html
0
投稿
猜你喜欢
- MSDN:包含正在 SQL Server 实例上运行的进程的相关信息。这些进程可以是客户端进程或系统进程。 视图中主要的字段: 1. Spi
- 1.SQL Server 2005中的存储过程并发问题问:我在SQL Server2005中遇到了并发问题。我持有车票的公共汽车上有一些空闲
- 一、题目描述题目内容:题目示例:题目解析:1 <= nums.length <= 104-107 <= nums
- 一:创建迁移在laravel中使用make:migration命令来创建迁移php artisan make:migration creat
- 在ASP中,除了ADODB、Scripting 等一些常用组件外,我们还可以用微软的ActiveX方法来轻松捕获哟: <%u
- 背景简介别踩白板这个游戏相信大家都玩过,这个是基于HTML5打造的简单小游戏,在PC端和移动端都能够运行,适应多种平台,今天我们使用原生JS
- 一、简单使用def TestLogBasic(): import logging  
- 一、在for循环中直接更改列表中元素的值不会起作用:如:l = list(range(10)[::2]) print (l)for n in
- 本文实例讲述了php控制文件下载速度的方法。分享给大家供大家参考。具体实现方法如下:<?php /* * set here a lim
- 本文实例讲述了Python基于回溯法子集树模板解决0-1背包问题。分享给大家供大家参考,具体如下:问题给定N个物品和一个背包。物品i的重量是
- 本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作。安装首先,要使用Python的SDK必须要先安
- 块级元素块级元素生成一个元素框,(默认地)它会填充其父级元素的内容,旁边不能有其他元素。换句话说,他在元素框之前和之后生成了“分隔”符。我们
- 生成静态页的方法有很多种,我比较喜欢用xmlhttp的方法生成,因为我不用考虑很多东西,我只要把动态的asp页面编写好就行了。<% s
- 1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。 2、sqlplus /
- 1、把这段拷到DW里,存成HTML文件。<HTML><HEAD><TITLE>move backgrou
- 我在网站上设置了邮件列表功能,实现用户自动订阅和发送,但很多用户输入和提交的邮件地址格式都是无效的,无法处理。请问如何解决这一问题?&nbs
- 导语承载童年的纸飞机你还会叠嘛?如果你是个80后或者90后,那你应该记得小时候玩的纸飞机。叠好后,哈口仙气,飞出去,感觉棒棒哒。虽然是一个极
- 一、引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存
- 一、概述在ubuntu环境下进行嵌入式开发,我们在进行不同的项目开发时,可能会遇到python环境不统一的情况。这时,我们可以通过updat
- 缓存(Cache)对于创建一个高性能的网站和提升用户体验来说是非常重要的,然而对我们这种只用得起拼多多的码农而言最重要的是学会如何使用缓存。