一、前言
我们上节课总体了解了http协议的相关概念,这节课我们专门针对请求做详细讲解。我们做接口自动化,其实就是通过requests模块模拟浏览器向服务器发送请求,来获取服务器返回的信息,爬虫也是运用了这个思想。我们要模拟发送请求,首先要知道请求的组成。
二、学习目标
1.请求报文的构成
2.模拟请求需要准备哪些参数
三、知识点
1.【请求报文的构成】
2.【模拟请求需要准备哪些参数】
我们刚刚已经讲了浏览器发送的接口请求报文的构成,用requests模块模拟浏览器发送请求时,请求数据尽量与浏览器真实的请求一致,所以在模拟请求时,必须有下列数据:
-
请求方法:接口的请求方式,如GET、POST
-
请求地址URL: 接口请求目标服务器的url地址,如http://127.0.0.1:8080/form/entry
-
请求头:请求头的数据很多没有必要全部传,重点传以下几个即可
- User-Agent:产生请求的浏览器类型。用以区分该请求是浏览器发的还是脚本发的。
- Content-Type:代表发送端发送的数据格式。这个在post请求中重点讲解。
- Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。登录后的接口一把用cookie验证用户是否有权限访问。
-
请求体:代表发送端发送的具体数据。这个在post请求中重点讲解。
请求体的数据格式是Content-Type规定的,在post请求中不同的数据格式的在requests模块中传参方式是不同的:
- Content-Type为application/x-www-form-urlencoded:requests.post()方法中需要用data参数传参
- Content-Type为application/json:requests.post()方法中需要用json参数传参