如何基于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常见文件操作的函数示例代码
Nov 15 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python中将字典转换为列表的方法
Sep 21 Python
Python连接phoenix的方法示例
Sep 29 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
python批量下载抖音视频
Jun 17 Python
django实现用户注册实例讲解
Oct 30 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
Python中的pprint模块
Nov 27 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 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生成随机数或者字符串的代码
2008/09/05 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
教学实习自我评价
2014/01/28 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
慰问信范文
2015/02/14 职场文书
超市主管竞聘书
2015/09/15 职场文书
入党申请书怎么写?
2019/06/21 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript