如何基于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提示No module named images的解决方法
Sep 29 Python
python实现复制整个目录的方法
May 12 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
Python 和 JS 有哪些相同之处
Nov 23 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
python实现俄罗斯方块
Jun 26 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
使用numba对Python运算加速的方法
Oct 15 Python
Python Gitlab Api 使用方法
Aug 28 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 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
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
在python 中split()使用多符号分割的例子
2019/07/15 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
医学毕业生自荐信
2013/10/11 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
校长先进事迹材料
2014/02/01 职场文书
初二生物教学反思
2014/02/03 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
博士导师推荐信
2015/03/25 职场文书
教师节倡议书2015
2015/04/27 职场文书
Python字符串格式化方式
2022/04/07 Python
Python使用openpyxl模块处理Excel文件
2022/06/05 Python