requests 是python的一个http请求库,很多人用它来发送http请求,或是用于编写爬虫或是用于做web测试,那么你知道通过它发出去的请求具体是什么内容么?
在做web开发时与其他系统联调时,不免要手动发送一些请求以验证对方接口或者己方接口的正确性,postman是一个非常不错的选择,它简单方便易用。
但也有人会选择使用requests库编写测试代码,为的是能够积累测试用例为以后的回归测试做准备。
调试的时候,双方总是会有意见不一致的情况,客户端怀疑服务端没有处理好请求,服务端怀疑请求端发的请求存在错误。
这个时候,需要的就是证据,客户端将自己发出的请求的详细信息拿出来,服务端将自己收到的请求的详细信息拿出来,对比一下就知道问题出在哪了。所谓详细信息不过就是请求头里的header和请求体里的数据,有了这两样,问题基本就能定位了。
requests 提供了prepare_request方法,可以返回本次请求的详细信息
from requests import Request, Session
data = {
'name': '中国'
}
url = 'http://127.0.0.1:5500/'
s = Session()
req = Request('POST', url, data=data)
prepped = s.prepare_request(req)
print(prepped.headers)
print(prepped.body)
# resp = s.send(prepped) # 发送请求
prepare_request会准备好要发送的请求,在客户端的你就能够准确的看到将要发出去的请求的header和body,这个功能还是蛮重要的,虽然在服务端也能够拿得到,但调试起来毕竟没有客户端方便。
QQ交流群: 211426309