首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个aiohttp会话

多个aiohttp会话
EN

Stack Overflow用户
提问于 2018-12-08 19:33:26
回答 1查看 2.5K关注 0票数 0

每个URL都有自己的会话吗?我阅读了在Github上找到的aiohttp文档,但我找不到这是否可能。我知道请求是可能的,但不确定如何使用aiohttp。任何帮助都是非常感谢的,因为我还没有找到答案。

代码语言:javascript
复制
sites = ['http://example.com/api/1', 'http://example.com/api/2']

async def fetch(session, site):
    print('Fetching: ' + site)

    async with session.get(site) as response:
        return await response.text()

async def main():
    t = []

    async with aiohttp.ClientSession() as session:
        for site in sites:
            task = asyncio.create_task(fetch(session, site))
            t.append(task)
        await asyncio.gather(*t)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-08 23:07:55

每个URL都有自己的会话吗?

是的,只需将会话创建移动到fetch协同线:

代码语言:javascript
复制
async def fetch(site):
    print('Fetching: ' + site)

    async with aiohttp.ClientSession() as session, \
            session.get(site) as response:
        return await response.text()

async def main():
    t = []

    for site in sites:
        task = asyncio.create_task(fetch(site))
        t.append(task)
    await asyncio.gather(*t)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53686189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档