如何基于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实现的石头剪子布代码分享
Aug 22 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
python调用动态链接库的基本过程详解
Jun 19 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
python实现简单飞行棋
Feb 06 Python
python程序如何进行保存
Jul 03 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
python 爬取豆瓣网页的示例
Apr 13 Python
Python生成九宫格图片的示例代码
Apr 14 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 CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
javascript实现2048游戏示例
2014/05/04 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
layui表格数据重载
2019/07/27 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
解析Python中的二进制位运算符
2015/05/13 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
简单了解python代码优化小技巧
2019/07/08 Python
python 实现return返回多个值
2019/11/19 Python
python类中super() 的使用解析
2019/12/19 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
《社戏》教学反思
2014/04/15 职场文书
毕业实习单位意见
2015/06/04 职场文书
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers