我在一些代码片段和 Requests documentation :
import requests sess = requests.Session() adapter = requests.adapters.HTTPAdapter(max_retries=20) sess.mount('https://', adapter)
我想弄清楚 .mount() 这里有。在这种情况下,是否只增加所有调用的允许重试次数 sess.request() ?是不是在模仿:
.mount()
sess.request()
for _ in range(max_retries): try: return sess.request(...) except: pass
还是会有更多的事情发生?
我知道 requests.Session 实例是 initialized 具有适配器的 max_retries=0 ,所以以上只是基于此的预感。
requests.Session
max_retries=0
如果你能知道 () 在这种情况下正在更改会话对象的行为。
()
.mount() 真正做到了你所想的,它只是为给定的模式安装了一个自定义适配器。
在给定的示例中,它只会增加允许的重试次数。但实际上它可以根据使用的适配器来做更多的事情。
例如,您还可以通过 HTTPAdapter(pool_maxsize=100) . 您可以通过创建一个完全定制的适配器来进行进一步的定制,例如 MyHTTPAdapter .
HTTPAdapter(pool_maxsize=100)
MyHTTPAdapter
选择权交给你了。