如何基于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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
初步探究Python程序的执行原理
Apr 11 Python
批处理与python代码混合编程的方法
May 19 Python
Python装饰器用法实例总结
Feb 07 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
用python处理图片之打开\显示\保存图像的方法
May 04 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
python redis 删除key脚本的实例
Feb 19 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
Python编写万花尺图案实例
Jan 03 Python
Python制作动态字符画的源码
Aug 04 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
Python表示矩阵的方法分析
2017/05/26 Python
Python 类的特殊成员解析
2018/06/20 Python
Python中最大递归深度值的探讨
2019/03/05 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
技术经理的自我评价范文
2013/12/03 职场文书
电子信息专业自荐书
2014/02/04 职场文书
开学典礼演讲稿
2014/05/23 职场文书
领导干部作风建设总结
2014/10/23 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang