这篇文章主要介绍了如何基于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 + requests实现发送HTTP请求

本文地址: http://www.cppcns.com/jiaoben/python/298329.html

python requests是什么_如何基于Python + requests实现发送HTTP请求相关推荐

  1. python人脸识别训练模型_开源 | 基于Python的人脸识别:识别准确率高达99.38%!

    原标题:开源 | 基于Python的人脸识别:识别准确率高达99.38%! 该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wi ...

  2. python个人网站系统_利用基于Python的Pelican打造一个自己的个人纯静态网站

    其实呢这么多年以来我一直建议每个有技术追求的开发者都要有写技术博客记笔记的良好习惯,一来可以积累知识,二来可以帮助别人,三来可以把开发中遇到的问题记录用来自省,第四可以通过交换友链来结识更多的技术领域 ...

  3. Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等

    Python之PIL之绘图:基于Python的PIL库绘制各种图形.添加文字等 目录 一.绘制各种形状各种案例 1.绘制矩形 2.绘制圆形.弧线形

  4. 《Python与硬件项目案例》— 基于Python的口罩检测与指纹识别签到系统设计

    <Python与硬件项目案例>- 基于Python的口罩检测与指纹识别签到系统设计 目录 <Python与硬件项目案例>- 基于Python的口罩检测与指纹识别签到系统设计 1 ...

  5. 《Python与硬件项目案例》— 基于Python与指纹模块AS608的指纹识别签到考勤系统(下篇)(期末大作业、课程设计、毕业设计、结课项目)

    目录 <Python与硬件项目案例>- 基于Python与指纹模块AS608的指纹识别签到考勤系统(下篇) 概述 参考代码 <Python与硬件项目案例>- 基于Python与 ...

  6. python如何获取图片的尺寸_如何基于Python获取图片的物理尺寸

    如何基于Python获取图片的物理尺寸 这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 ...

  7. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论

    [基于Python]MIT OCW 计算机科学与编程导论 (MIT Course Number 6.0001)Introduction to Computer Science and Programm ...

  9. 如何用python制作动画_如何基于Python Matplotlib实现网格动画

    -1- 如果你对本文的代码感兴趣,可以去 Github (文末提供)里查看.第一次运行的时候会报一个错误(还没找到解决办法),不过只要再运行一次就正常了. 这篇文章虽然不是篇典型的数据科学类文章,不过 ...

最新文章

  1. 数据中心布线系统构成及不同规模范例
  2. 【教程】EditPlus+MinGW搭建简易的C/C++开发环境
  3. cxf整合spring代码
  4. 我无法不是我自己...
  5. 在线流程图绘制网站draw.io支持的三种存储介质
  6. 使用putty在linux主机和windows主机之间拷贝文件(已测试可执行)
  7. 定时任务 Scheduled quartz
  8. sys_connect_by_path 用法
  9. 运行多个 npm script 的各种姿势
  10. VB之修改机器码达到WG
  11. Struts2.3.4.1 + Spring3.1.2 + Hibernate4.1.6整合
  12. “蔚小理”将齐聚港股!蔚来申请在港IPO,计划3月10日上市 9个月亏损近19亿元...
  13. c++中map的基本函数
  14. 西部数码服务器自动备份,西部数码-云服务器
  15. c语言课程设计作业医院挂号系统,【c语言课程设计】医院门诊系统
  16. 计算机vb实验感想,vb课程设计心得体会范文(精选3篇)
  17. 用Java实现简单的井字棋程序(α-β剪枝)
  18. SQL注入原理-时间盲注
  19. 申报高新技术企业需要注意的问题
  20. 精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试

热门文章

  1. 成为Java流大师–第4部分:数据库流
  2. 带有Prometheus的弹簧靴和千分尺第5部分:旋转Prometheus
  3. apache camel_探索Apache Camel Core –文件组件
  4. Java 10中的本地类型推断,或者如果它像鸭子一样嘎嘎叫
  5. 从方法返回Java 8的可选项时的注意事项
  6. 过滤序列,惰性序列_Java 8的惰性序列实现
  7. Spring框架–应用程序上下文–到达应用程序上下文的三种方法
  8. Java Message System简介
  9. 早期访问中具有NetBeans的Oracle公共云Java服务
  10. primefaces_懒惰的JSF Primefaces数据表分页–第1部分