如何基于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实现列表转换成字典数据结构的方法
Mar 11 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Anaconda入门使用总结
Apr 05 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
Python实现定时精度可调节的定时器
Apr 15 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
python使用PIL实现多张图片垂直合并
Jan 15 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
Python request使用方法及问题总结
Apr 26 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中用hash实现的数组
2011/07/17 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
python编写微信公众号首图思路详解
2019/12/13 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
Django配置跨域并开发测试接口
2020/11/04 Python
python regex库实例用法总结
2021/01/03 Python
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
中医药大学市场营销专业自荐信
2013/09/29 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
运动会邀请函范文
2014/01/31 职场文书
2014年教师节活动总结
2014/08/29 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server