如何基于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 24 Python
Python 字符串操作方法大全
Mar 11 Python
Python读写zip压缩文件的方法
Aug 29 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
python 实现分组求和与分组累加求和代码
May 18 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
python模块内置属性概念及实例
Feb 18 Python
Python re.sub 反向引用的实现
Jul 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
PHP脚本的10个技巧(8)
2006/10/09 PHP
PHP关联链接常用代码
2012/11/05 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
php生成excel列序号代码实例
2013/12/24 PHP
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
Python中的变量和作用域详解
2016/07/13 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python psutil模块使用方法解析
2019/08/01 Python
Pycharm安装python库的方法
2020/11/24 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
电厂厂长岗位职责
2014/01/02 职场文书
《荷花》教学反思
2014/04/16 职场文书
护士求职信范文
2014/05/24 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
主持人开幕词
2015/01/29 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers