如何基于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之有容乃大的list(4)
Sep 28 Python
用Python中的__slots__缓存资源以节省内存开销的方法
Apr 02 Python
python显示生日是星期几的方法
May 27 Python
python选择排序算法实例总结
Jul 01 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
用python制作游戏外挂
Jan 04 Python
Python实现多属性排序的方法
Dec 05 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
Django serializer优化类视图的实现示例
Jul 16 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 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中unserialize返回false的解决方法
2014/09/22 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
JS代码实现页面切换效果
2021/01/10 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python3实现windows下同名进程监控
2018/06/21 Python
Python之循环结构
2019/01/15 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
我们的节日清明节活动方案
2014/03/05 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
区域销售大会开幕词
2016/03/04 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
sass 常用备忘案例详解
2021/09/15 HTML / CSS
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript