如何基于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操作gmail实例
Jan 14 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
python采集微信公众号文章
Dec 20 Python
Python实现生成密码字典的方法示例
Sep 02 Python
Python代码块及缓存机制原理详解
Dec 13 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
python 数据库查询返回list或tuple实例
May 15 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
Jun 03 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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
yii去掉必填项中星号的方法
2015/12/28 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
Python之eval()函数危险性浅析
2014/07/03 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python实现购物车购物小程序
2018/04/18 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
实例详解Python装饰器与闭包
2019/07/29 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python定位xpath 节点位置的方法
2019/08/27 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
行政专员求职信范文
2014/05/03 职场文书
房地产广告策划方案
2014/05/15 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
购房委托书
2014/10/15 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle