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)
代码演示:
标明原创的版权均归本人所有,未经本人允许,不得用于商业用途以及传统媒体。任何人或团体、机构全部转载或者部分转载、摘录,请保留本博客链接或标注来源。本人博客地址:https://www.cnblogs.com/temari/