Fre*_*Pym 20 python python-requests
有时我看到人们使用requests.Session对象调用Web API:
client = requests.session()
resp = client.get(url='...')
Run Code Online (Sandbox Code Playgroud)
但有时它们不会:
resp = requests.get(url='...')
Run Code Online (Sandbox Code Playgroud)
有人可以解释我们何时应该使用Session以及何时不需要它们?
Mar*_*ers 25
在引擎盖下,为每个请求requests.get()创建一个新Session对象.
通过预先创建会话对象,您可以重用会话; 例如,这允许您持久化Cookie,并允许您重复使用设置以用于所有连接,例如标头和查询参数.最重要的是,会话让您利用连接池; 重用与同一主机的连接.
请参阅Sessions文档:
Session对象允许您跨请求保留某些参数.它还会在从Session实例发出的所有请求中保留cookie,并使用urllib3的连接池.因此,如果您向同一主机发出多个请求,则将重用底层TCP连接,这可能会导致性能显着提高(请参阅HTTP持久连接).