接口测试
接口测试
本章列举了一些直接发起请求的模块,这些模块在旧时代 HTTP1.0 时期,非 Js 渲染时代是我们获取网页数据的利器。
现 在是HTTP2.0(简称 h2)以及以 VUE 为代表的 Js 渲染页面时代。因此这些模块现在主要用于获取直接的数据,譬如:图片、视频、纯静态的 HTML 网页或 XHR(XMLHttpRequest)类型的请求。
请求的方法与 HTTP 协议对资源的操作对应
(1) GET:请求获取 URL 位置的资源 (2) HEAD:请求获取 URL 位置资源的响应消息报告,即获得该资源的头部信息 (3) POST:请求向 URL 位置的资源后附加新的数据 (4) PUT:请求向 URL 位置存储一个资源,覆盖原 URL 位置的资源 (5) PATCH:请求局部更新 URL 位置的资源,即更改该处资源的部分内容 (6) DELETE:请求删除 URL 位置存储的资源 (特殊)options :向服务器获取一些服务器和客户端能够打交道的参数,但与获取资源并不直接相关
urllib 模块:仅支持 HTTP1.0 仅同步 ,但是解码和解析功能是真的很好用
request 模块:仅支持 HTTP1.0 仅同步 是基于 urllib3 的再次封装,因此语法更简单
aiohttp 模块:支持 HTTP2.0 仅异步
httpx 模块:支持 HTTP1.1/2.0 同步异步,双卡双待,是直接发起请求的模块中最全能的模块。
urllib
urllib 是一个收集了多个涉及 URL 的模块的自带包:可以打开和读取 URL、 抛出异常、解析 URL、解析 robots.txt 文件是最底层的模块。