欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

requestsstream

时间:2023-05-15

关于 Python requests模块的 stream参数

报文过大使用迭代用

demo

import requestsbase_url="http://httpbin.org/"r = requests.get(base_url+'/stream/10', stream=True)

response_body解析: 以n分割

for lines in r.iter_lines():print("lines:", lines)

response_body解析: 字节数分割

for chunk in r.iter_content(chunk_size=1024):print("chunk:", chunk)

源码查看

requests.sessions

截图部分是 class Session 的 send 方法, 该处是stream参数实际生效的部分, 可以看到stream=False时是执行了r.content部分, 进入查看可以看到.

requests.models
是对Response的实例属性_content赋值了, 即将报文一次性全部加载到了内存中, 而stream=True则没有该步骤, 所以加入此参数的意义只有一个就是在加载一些图片或者文件之类的大尺寸报文时不会一次性把报文全部加载到内存中, 转而通过 上述的迭代方式去获取报文

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。