如何基于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下函数参数的传递(参数带星号的说明)
Sep 19 Python
python实现FTP服务器服务的方法
Apr 11 Python
Python建立Map写Excel表实例解析
Jan 17 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
Python中shapefile转换geojson的示例
Jan 03 Python
python多进程读图提取特征存npy
May 21 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
python ETL工具 pyetl
Jun 07 Python
python中把元组转换为namedtuple方法
Dec 09 Python
如何在C++中调用Python
May 21 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
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
Python中用于计算对数的log()方法
2015/05/15 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
基于python中theano库的线性回归
2018/08/31 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Django choices下拉列表绑定实例
2020/03/13 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
本科生学习总结的自我评价
2013/10/02 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
Python if else条件语句形式详解
2022/03/24 Python
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers