如何基于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入门篇之数字
Oct 20 Python
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
Django中几种重定向方法
Apr 28 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Django choices下拉列表绑定实例
Mar 13 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
python 元组和列表的区别
Dec 30 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
OpenCV-Python模板匹配人眼的实例
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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
Python类的基础入门知识
2008/11/24 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
python实现感知器算法(批处理)
2019/01/18 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
如何用Django处理gzip数据流
2021/01/29 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
数学教学随笔感言
2014/02/17 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
聘任合同书
2015/09/21 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书