1、安装

  • 方式一、命令行直接 pip install requests
  • 方式二、PyCharm中,File >> Settings >> Project:Practice >> Python Interpreter,点击+号,搜索requests,点击Install Package。

2、常用的方法

请求方式

  • requests.get() # 发送GET请求
  • requests.post() # 发送POST请求
  • requests.delete() # 发送DELETE请求
  • requests.put() # 发送PUT请求
  • requests.request() # 核心方法

返回类型

  • res = requests.request()
  • res.text # 返回字符串数据
  • res.content # 返回字节格式数据
  • res.json() # 返回字典格式数据
  • res.status_code # 返回状态码
  • res.cookies # 返回Cookie信息
  • res.reason # 返回状态信息
  • res.encoding # 返回编码格式
  • res.headers # 返回响应头信息

核心方法-request()

通过查看python的源码,可以看到Get请求和Post请求,实际上都是去调用request()发送请求。

# Get请求
def get(url, params=None, **kwargs):
r"""Sends a GET request. :param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the query string for the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
""" return request("get", url, params=params, **kwargs) # Post请求
def post(url, data=None, json=None, **kwargs):
r"""Sends a POST request. :param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) json data to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
""" return request("post", url, data=data, json=json, **kwargs)

3、接口实战

本文中的接口示例全部来自微信公众开发平台,详细的请直接参考官网

https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html

发送GET请求

import requests

# 发送GET请求
url = "https://api.weixin.qq.com/cgi-bin/token"
data = {
"grant_type": "client_credential",
"appid": "wx1369184acdfe****",
"secret": "34b1eb5f6ed2aa8a2ef3333bac63****"
} res = requests.get(url=url, params=data)
print(res.json())

发送GET请求

import requests

# 发送GET请求
url = "https://api.weixin.qq.com/cgi-bin/token"
data = {
"grant_type": "client_credential",
"appid": "wx1369184acdfe****",
"secret": "34b1eb5f6ed2aa8a2ef3333bac63****"
}
res = requests.get(url=url, params=data)
print(res.json())
access_token = res.json()["access_token"]
print(access_token)
# post请求
url = "https://api.weixin.qq.com/cgi-bin/clear_quota?access_token=" + access_token + "" data = {
"appid": "wx1369184acdfe****"
}
res = requests.post(url=url, json=data)
print(res.json())

接口自动化之request模块的更多相关文章

  1. python接口自动化测试(一)-request模块

    urllib.request模块是python3针对处理url的. 1. 首先导入: from urllib import request 2. 构造url,构造url的headers信息和传参[re ...

  2. 接口自动化-Python3+request上传文件,发送multipart/form-data编码

    1.安装requests_toolbelt   pip install requests-toolbelt 2.发送文件中的数据 from requests_toolbelt import Multi ...

  3. 接口自动化测试之-requests模块详解

    一.requests背景 Requests 继承了urllib2的所有特性.Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国 ...

  4. RobotFramework下的http接口自动化Set Request Body 关键字的使用

    Set Request Body关键字用来设置http 请求时的body 信息,尤其是在post 请求时,经常需要用到这个关键字. 该关键字接收一个参数,[ body ] 示例1:登录博客园(http ...

  5. RobotFramework下的http接口自动化Set Request Header 关键字的使用

    Set Request Header 关键字用来设置http请求时的请求头部信息. 该关键字接收两个参数,[ header_name | header_value ] 示例1:设置http请求时的Re ...

  6. 接口自动化之request几种常见请求及响应方法

    request 的几种常见方法 1.request.get() 发送get请求 2.request.post() 发送post请求 3.request.delete() 发送delete请求 4.re ...

  7. 接口自动化框架两大神器-正则提取器和Jsonpath提取器

    一 接口自动化框架 一 框架结构 二 结构说明 - API 用于封装被测系统的接口(用request模块封装的请求方法) - TestCase 将一个或多个接口封装成测试用例,并使用UnitTest管 ...

  8. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

  9. 接口自动化框架(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种, ...

  10. 接口自动化框架2-升级版(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 第一版入口:接口自动化框架(Pytest+request+Allure) 本次版本做了一些升级 ...

随机推荐

  1. 快速获取使用dblink的视图的全部字段

    快速获取使用dblink的视图的全部字段 默认情况下,使用dblink连接的视图在PL/SQL是没法通过代码助手获取全部的字段的 如果要获取全部字段的话,可以使用一个奇怪的方法 对要获取的使用dbli ...

  2. 04_el和data的两种写法

    总结: data与el的两种写法     1.el的两种写法       (1)new Vue时需要配置el属性:       (2)先创建Vue实例,然后再通过vm.$mount('#root')指 ...

  3. 各位 PHPer,Serverless 正当时

    ​简介:PHP 作为一个开发群体的很大的语言其应用范围相当广泛,Serverless 的理念和 PHP 语言的理念都是让开发者最大精力集中在自己的业务价值.那么 PHP 遇见 Serverless 会 ...

  4. 从操作系统层面分析Java IO演进之路

    简介: 本文从操作系统实际调用角度(以CentOS Linux release 7.5操作系统为示例),力求追根溯源看IO的每一步操作到底发生了什么. 作者 | 道坚来源 | 阿里技术公众号 前言 本 ...

  5. [FAQ] Member "address" not found or not visible after argument-dependent lookup in address payable.

    顾名思义,address 属性不存在,请检查调用方. 比如:msg.sender.address 会有此提示,在 Solidity Contract 中,msg.sender.balance 是存在的 ...

  6. dotnet 提升 ToUpper 性能

    在应用软件启动过程中,客户端应用软件是对性能敏感的.比如在解析命令行参数的时候,有时候需要进行字符串处理逻辑.一般来说命令行参数都是语言文化无关的,在需要进行全大写或全小写转换过程中,采用 ToUpp ...

  7. WPF 点击按钮时更改按钮样式界面效果的 XAML 实现方法

    在 WPF 中按钮 Button 将会吃掉路由事件,此时的 EventTrigger 如果通过 RoutedEvent 是 MouseLeftButtonDown 那么将会拿不到路由事件,也就触发不了 ...

  8. docker-compose安装EFK

    一.环境 IP 系统 配置 版本 192.168.10.100 Centos7.9 2核4G Docker Compose version v2.19.1.EFK-7.17.11 EFK版本是试用版本 ...

  9. QT之Mysql驱动

    错误现象 找不到Mysql驱动 QSqlDatabase: QMYSQL driver not loaded 一.驱动查看 在程序中直接打印QT Creator中现有的驱动,打印方式如下: qDebu ...

  10. fastreport .net打印普通报表

    fastreport .net打印普通报表 前言: .net代码层先不记录在这,后续会单独写一篇博客来记录. 直接在工具上进行功能点的实现 一.效果图 二.功能点 分页 分页小计 金额大写 三.功能点 ...