怎样确认通过requests发出的请求符合期望

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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案