我正在尝试制作一个可以存活一天、一周或更长时间的应用程序。在应用程序的生命周期中,它会向不同的 API 发出请求。其中一些 api 可能需要登录,因此我可以随时访问 cookie,这一点很重要。
所以我需要的是一个不同的 API 可以在不阻塞应用程序的情况下使用的文件。
我是异步编程(asyncio/aiohttp)的新手,我见过的示例展示了如何从 url 列表发出大量请求,但这不是我需要的。
我的代码的问题是,我得到 ClientSession is closed 错误或未关闭的 ClientSession 警告。
import asyncio # only here for debugging purposes
import aiohttp
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:61.0) Gecko/20100101 Firefox/61.1'
def default_headers():
header = {
'User-Agent': USER_AGENT
}
return header
class WebSession(object):
session = None
@classmethod
def create(cls):
cls.session = aiohttp.ClientSession()
return cls.session
@classmethod
def close(cls):
if cls.session is not None:
cls.session.close()
async def request(method, url, **kwargs):
if kwargs.get('headers', None) is …Run Code Online (Sandbox Code Playgroud)