requests接口测试-headers

一,客户端请求信息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

请求头,这个参数不是每个接口都必须要添加,开发可以自定义。有的网站为了防抓取,服务器会判断是否是由浏览器发出的请求。有时候我们使用接口测试工具发送http请求,网页被拒绝,可能是缺少headers。因此我们在发送请求时,可以设置请求头headers,伪装成浏览器。

二,添加headers请求头

有些网站不校验headers,我们在编写接口测试脚本时,HTTP请求可以不添加headers,有些网站就会校验headers,没有就拒绝请求。具体是否要添加headers,建议咨询开发人员headers是否必须。下面以超级鹰官网登录接口添加headers为例。

2.1 打开chrome浏览器,访问超级鹰官网,F12调出开发者工具窗口,输入登录信息,点击【登录】,如图:

2.2 开发者工具窗口点击【NetWork】,选中对应请求记录,查看请求信息,如图:

复制请求报文request-headers的User-Agent。

2.3 编写代码,Http请求添加headers,headers其他字段可加可不加,但User-Agent字段一定要添加,代码如图:

"""
接口名称:超级鹰网站登录接口
目标:添加headers
接口URL: http://www.chaojiying.com/user/login/
请求方法:post
请求参数:user,pass,act
"""
import  requests
#URL地址
url="http://www.chaojiying.com/user/login/"
#data参数为字典,user为用户名,pass为密码
data={
     'user':'xxxxx',
     'pass': xxxxx,
     'act':1
}
#添加headers
headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'
}
#忽略警告信息
requests.packages.urllib3.disable_warnings()
#发送请求,data参数
r=requests.post(url,data=data,headers=headers,verify=False)
print(r.text)
print(r.status_code)
print(r.headers)
代码演示:

posted @ 2020-08-14 21:36  柠檬草不孤单  阅读(1860)  评论(0编辑  收藏  举报