如何基于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中__init__和__new__的区别详解
Jul 09 Python
Python 多线程Threading初学教程
Aug 22 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
python3.6的venv模块使用详解
Aug 01 Python
用python爬取租房网站信息的代码
Dec 14 Python
django的ORM模型的实现原理
Mar 04 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
Python切片列表字符串如何实现切换
Aug 06 Python
python安装第三方库如xlrd的方法
Oct 31 Python
用python实现监控视频人数统计
May 21 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中基本符号及使用方法
2010/03/23 PHP
php 代码优化之经典示例
2011/03/24 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
为什么是 Python -m
2020/06/19 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
个人教师自我评价范文
2013/12/02 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
电视购物广告词
2014/03/19 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
品德评语大全
2014/05/05 职场文书
大学新闻系求职信
2014/06/03 职场文书
小学社团活动总结
2014/06/27 职场文书
匿名信格式范文
2015/05/27 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书