23. requests安装与使用
Windows下安装requests
在介绍requests库之前,先贴一下requests官网,当然也可以访问requests中文网站
requests官网给出以下介绍:Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。但同时也给出了警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。看吧,这就是 Requests 的威力!
因为我们安装的版本是Python3.6.6,所以在安装过程中已经默认帮我们安装好了pip,我们可以打开cmd窗口,输入pip install requests

requests实例
在网络基础中,我们介绍到HTTP的8种请求方法,分别是GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT,但是在实际工作中,我们常用的请求方法可能只有6种,GET、HEAD、POST、PUT、DELETE、OPTIONS。下面我们看看这6种方法如何使用吧。
在介绍如何使用6种请求方法之前,我们先来看一下URL组成格式。
protocol://hostname[:port]/path/[:parameter][?query]#fragment
protocol:协议,常用的协议是http
hostname:主机地址 可以是域名,也可以是IP地址
port:端口 http协议默认端口是:80端口,如果不写默认就是:80端口
path:路径 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
parameter :参数 这是用于指定特殊参数的可选项。
query: 查询 可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。
fragment:片段 用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。
虽然URL组成格式很复杂,但是我们一般看到的没这么复杂,比如百度https://www.baidu.com/,https是协议http://www.baidu.com是域名。端口是80,被隐藏。
GET请求
GET请求有2种情况,一种是带参数,一种是不带参数。格式如下:
requests.get(url)
requests.get(url, params= parameter)
上面代码中,params是固定写法,parameter代表参数,在使用requests构造请求前,请先导入requests库,打开我们的Pycharm ,输入如下代码:
import requests
response1 = requests.get('https://api.github.com/events')
payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
response2 = requests.get('http://httpbin.org/get', params=payload)
print(response1)
print(response2)
上面代码将输出如下内容:
<Response [200]>
<Response [200]>
当我们构造一个请求时,一般来说,都会有响应,代码中的response1、response2就是请求的响应。我们可以查看响应的url、text(响应内容)、content(二进制响应内容)、json响应内容、raw(原始响应内容)等,使用起来也较为简单,如下代码所示:
response.url
response.text
response.content
response.json
response. Raw
当然我们也可以给请求加入headers,有关headers内容,我们在HTTP请求与响应中,已经介绍过,加入headers的GET请求格式如下:
import requests
url = 'https://api.github.com/some/endpoint'
headers = {'user-agent': 'my-app/0.0.1'}
response = requests.get(url, headers=headers)
POST请求
Post请求构造起来也比较简单,格式如下:
requests.post(url, data= parameter)
requests.post(url, json= parameter)
上面代码中,params是固定写法,data/json代表参数类型,为了方便理解,下面我们将构造一些实例, 如下代码所示:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post("http://httpbin.org/post", data=payload) # data格式参数
print(response.text)
print(response.url)
print(response.content)
print(response.raw)
print(response.json())
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
r = requests.post(url, json=payload) # json 格式参数
print(r.text)
我们还可以使用requests上传文件,我们在代码同级目录创建report.xml,输入如下代码:
import requests
url = 'http://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)
print(r.text)
PUT、DELETE、HEAD、OPTIONS请求
创建格式如下代码所示:
requests.put('http://httpbin.org/put', data = {'key':'value'})
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
小结:PUT、DELETE、HEAD、OPTIONS四个请求中,笔者只用过PUT、DELETE,使用方法也比较简单,这里同样不做过多介绍,在本章中,我们介绍了如何在Windows下安装requests,如何构造GET、HEAD、POST、PUT、DELETE、OPTIONS请求,这6种请求中,重点介绍了GET、POST请求方法,这2种方法在接口测试中也是最常用的请求方法,希望读者可以详细阅读requests中文网站。
欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560
23. requests安装与使用的更多相关文章
- Python requests 安装与开发
Requests 是用Python语言编写HTTP客户端库,跟urllib.urllib2类似,基于 urllib,但比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求, ...
- 在Fedora 23上安装多媒体解码器
在Fedora 23上安装多媒体解码器 时间:2016-06-25来源:topspeedsnail.com 作者:斗大的熊猫 安装多媒体解码器允许你播放更多格式的音频和视频格式.大多数这些解码器都 ...
- centos 7 MysSQL 5.7.23 二进制安装
MySQL 5.7.23 二进制安装 CentOS 7 将默认数据库MySQL替换成了Mariadb. 这里会从系统的环境准备开始一步一步安装. 环境准备 系统版本 内核版本 IP地址 Centos ...
- python requests 安装
在 windows 系统下,只需要输入命令 pip install requests ,即可安装. 在 linux 系统下,只需要输入命令 sudo pip install requests ,即可 ...
- Fedora 23如何安装LAMP服务器
LAMP 是开源系统上 Web 服务器的梦幻组合.LAMP 是 Linux. Apache HTTP 服务. MySQL/MariaDB 数据库和 PHP. Perl 或 Python 的简称. 下面 ...
- hadoop-0.23.9安装以及第一个mapreduce测试程序
hadoop是一个能够对大量数据进行分布式处理的软件框架.它实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有着高容错性的特点,并且设计 ...
- requests 安装
requests 是用来发送 HTTP 请求的一个库,requests 是对 urllib 和 urllib2 进行封装的一个模块,用来取代 urllib 和 urllib2,可以使用以下两种方法安装 ...
- Navicat Premium v12.0.23.0 安装,使用激活码激活
1 下载 可以直接官网下载安装包,也可以直接到我的云盘下载 下载地址:https://pan.baidu.com/s/1apwU9cIKBTr-z0CuJEJ9gg 文件包中包含下面的文件: 2 安装 ...
- mysql5.7.23版本安装教程
亲身实践安装mysql,用时居然花费了三个小时,在有那么多教程的情况下,依然在不该花费时间的路上浪费了太多时间.希望这篇文章能够帮助大家少走弯路~~ 1.下载我下载的是64位. 2.解压下载之后,我选 ...
随机推荐
- kubernetes安装部署
1.根据系统内核情况,选择对应的ali云上的镜像,作为仓库的路径指向来配置k8s https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes- ...
- 18. Jmeter-取样器二
jmeter-sampler介绍与使用 JMS Point-to-Point JMS Publisher JMS Subscriber JSR223 Sampler JUnit Request Jav ...
- Font and PDF
1. 独立存在的Font文件 有三类: Type 1 Font TrueType Font OpenType Font Type 1 是由Adobe开发的,它是基于PostScript的Font,它通 ...
- 关于linux的一些常用的指令
top:命令经常用来监控linux的系统状况,比如cpu.内存的使用. free:观察内存使用. Find:查找指定的文件. Whereis:查找指定的文件源和二进制文件和手册等 Which:用于查询 ...
- 工控PLC中,关于定时器TON,TOF,的一点新认知,或者说醒悟吧!
PLC 中的定时器,都是放在一个具体PRG任务单元中的,而PRG单元需要放在具体固定的周期循环任务中才能被执行,而这个周期循环任务的循环周期 T: 与定时器的定时时间T0: T与T0 的数量级 ...
- JNDI数据源的配置及使用
数据源的作用JDBC操作的步骤: 1. 加载驱动程序 2. 连接数据库 3. 操作数据库 4. 关闭数据库,释放连接 也就是说,所有的用户都需要经过此四步进行操作,但是这四步之中有三步对所有人 ...
- go 语言结构控制
if else 结构: #第一种 if condition { // do something } #第二种 if condition { // do something } else { // d ...
- wireshark抓取本地回环及其问题 转摘:http://www.cnblogs.com/luminji/p/3503464.html
一:The NPF driver isn’t running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...
- 使用 lombok 简化代码
使用前的准备 1.Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO).它通过注解实现这一目的. <1>添加 ...
- CSS实现不换行/自动换行/文本超出隐藏显示省略号
在写页面的时候,我们经常会需要用到关于文本的换行,强制换行以及显示几行超过显示省略号等,今天我们就对这些问题来做个汇总吧! 1.自动换行 div{ word-wrap:break-word; word ...