aiohttp中session的使用


本文距离上次更新已过去 0 天,部分内容可能已经过时,请注意甄别。
Session
官网介绍的时候推荐采用同一个session做请求,可以自带很多的优势,比如keeplive,cookie等。
具体的可以看官网的内容:Advanced Client Usage — aiohttp 3.8.4 documentation
官网给出的session示例
官网示例地址:The aiohttp Request Lifecycle — aiohttp 3.8.4 documentation
对于session只有一点需要注意,那就是需要close
,可以手动关闭,也可以利用上下文管理的with
。
第一种
1 | import aiohttp |
第二种
第一种情况可以看到,对于单一的请求是可以的,但是对于多个请求未免有些烦琐,我们看官网给的第二种方式。
1 | import aiohttp |
我们可以在main
函数中利用创建一个session来完成多次请求。
但是我们发现如果把session和我们的类相结合,上面的两种方式就都不是很友好,看github的issue作者是建议用构造函数来完成。
和项目相结合的方式
1 | from aiohttp import ClientResponse, ClientTimeout |
新建一个Request
的类,实现__aenter__
和__aexit__
两个方法,实例化类时新建一个session,请求完毕后关闭。
Enjoy
aiohttp是一个非常好玩的库,可以做client,也可以做server,对于个人项目来说非常的舒服,可以一把梭了。
评论
评论插件加载失败
正在加载评论插件