在介绍requests库以前,先贴一下requests官网,固然也能够访问requests中文网站python
requests官网给出如下介绍:Requests 惟一的一个非转基因的 Python HTTP 库,人类能够安全享用。但同时也给出了警告:非专业使用其余 HTTP 库会致使危险的反作用,包括:安全缺陷症、冗余代码症、从新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。看吧,这就是 Requests 的威力!git
由于咱们安装的版本是Python3.6.6,因此在安装过程当中已经默认帮咱们安装好了pip,咱们能够打开cmd窗口,输入pip install requests
github
在网络基础中,咱们介绍到HTTP的8种请求方法,分别是GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT,可是在实际工做中,咱们经常使用的请求方法可能只有6种,GET、HEAD、POST、PUT、DELETE、OPTIONS。下面咱们看看这6种方法如何使用吧。json
在介绍如何使用6种请求方法以前,咱们先来看一下URL组成格式。windows
protocol://hostname[:port]/path/[:parameter][?query]#fragmentapi
protocol:协议,经常使用的协议是http安全
hostname:主机地址 能够是域名,也能够是IP地址微信
port:端口 http协议默认端口是:80端口,若是不写默认就是:80端口网络
path:路径 由零或多个“/”符号隔开的字符串,通常用来表示主机上的一个目录或文件地址。app
parameter :参数 这是用于指定特殊参数的可选项。
query: 查询 可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技术制做的网页)传递参数,可有多个参数,用“&”符号隔开,每一个参数的名和值用“=”符号隔开。
fragment:片断 用于指定网络资源中的片段。例如一个网页中有多个名词解释,可以使用fragment直接定位到某一名词解释。
虽然URL组成格式很复杂,可是咱们通常看到的没这么复杂,好比百度https://www.baidu.com/
,https是协议http://www.baidu.com
是域名。端口是80,被隐藏。
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]>
当咱们构造一个请求时,通常来讲,都会有响应,代码中的response一、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请求构造起来也比较简单,格式以下:
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)
建立格式以下代码所示:
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