如何基于Python + requests实现发送HTTP请求


Posted in Python onJanuary 13, 2020

这篇文章主要介绍了如何基于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格式显示,看起来像字典,也比较清晰!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
在Python中使用poplib模块收取邮件的教程
Apr 29 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
python 将md5转为16字节的方法
May 29 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
python实现求特征选择的信息增益
Dec 18 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
python scrapy重复执行实现代码详解
Dec 28 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 Python
Python图片检索之以图搜图
May 31 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
python+tifffile之tiff文件读写方式
Jan 13 #Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 #Python
手动安装python3.6的操作过程详解
Jan 13 #Python
Python中join()函数多种操作代码实例
Jan 13 #Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 #Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 #Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 #Python
You might like
PHP与SQL注入攻击[三]
2007/04/17 PHP
简单的PHP图片上传程序
2008/03/27 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现telnet客户端的方法
2015/04/15 Python
介绍Python中的__future__模块
2015/04/27 Python
python多任务及返回值的处理方法
2019/01/22 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Python中如何添加自定义模块
2020/06/09 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
采购主管岗位职责
2014/02/01 职场文书
医药销售自荐书
2014/05/29 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android