Bra*_*mon 6 python urllib3 python-requests
我在一些代码片段和请求文档中看到过这样的事情:
import requests
sess = requests.Session()
adapter = requests.adapters.HTTPAdapter(max_retries=20)
sess.mount('https://', adapter)
Run Code Online (Sandbox Code Playgroud)
我试图更好地了解.mount()这里的作用。在这种情况下,是否只是增加对所有调用的允许重试次数sess.request()?它是否在模拟以下内容:
for _ in range(max_retries):
try:
return sess.request(...)
except:
pass
Run Code Online (Sandbox Code Playgroud)
或者还有更多事情发生吗?
我知道requests.Session实例是用具有的适配器初始化的max_retries=0,因此以上只是基于此的预感。
.mount()在这种情况下,了解如何具体改变会话对象的行为会很有帮助。
Sra*_*raw 14
.mount()确实如您所想,它只是将自定义适配器安装到给定的架构。
在您给出的示例中,它只是增加了允许的重试次数。但实际上它可以做更多的事情,具体取决于使用的适配器。
例如,您还可以更改连接池大小HTTPAdapter(pool_maxsize=100)。您可以通过创建完全自定义的适配器(例如MyHTTPAdapter.
选择权交给你了。