如何基于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中import reload __import__的区别详解
Oct 16 Python
Python线性方程组求解运算示例
Jan 17 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
Python中的取模运算方法
Nov 10 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
Python 处理图片像素点的实例
Jan 08 Python
Python编写带选项的命令行程序方法
Aug 13 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
用Python远程登陆服务器的步骤
Apr 16 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
Python基础学习之奇异的GUI对话框
May 27 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
自动跳转中英文页面
2006/10/09 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
php使用百度天气接口示例
2014/04/22 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
使用Python实现简单的服务器功能
2017/08/25 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
电气专业应届生求职信
2013/11/01 职场文书
检举信的格式及范文
2014/04/04 职场文书
2014年老干部工作总结
2014/11/21 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
公司管理制度范本
2015/08/03 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
利用JavaScript写一个简单计算器
2021/11/27 Javascript