问答

python aiohttp里面用try except导致不异步?

作者:admin 2021-06-15 我要评论

async def get_res(url,i): async with aiohttp.ClientSession() as session: async with session.get(url) as r: # json_body = await r.json() try: resp_data...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
async def get_res(url,i):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as r:
            # json_body = await r.json()
            try:
                resp_data = await r.text()
            except UnicodeDecodeError:
                print('error')
                pass
                # resp_data = await r.read()
    print(f'{i} req done')
    return r.headers

async def main2():
    workers = [
        asyncio.create_task(get_res('http://img.alicdn.com/imgextra/i4/35034182/O1CN01dxL9pi1glOv3l5YW1_!!35034182.jpg?p={}'.format(i), i))
        for i in range(10)
    ]
    all_body=await asyncio.gather(*workers)

if __name__ == '__main__':
    #asyncio.run(main())
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main2())

resp_data = await r.text()
这个代码会触发try except,这个时候10个请求是一个一个输出结果的.
改成resp_data = await r.read()
就会一起输出
是为什么呢

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 有哪些免费轻量级的适用于日志收集与展

    有哪些免费轻量级的适用于日志收集与展

  • 怎么讲JS 对象的value 赋值到key,形成

    怎么讲JS 对象的value 赋值到key,形成

  • 延迟队列DelayQueue的getDelay()方法,

    延迟队列DelayQueue的getDelay()方法,

  • input file 写了 accept="image/*"

    input file 写了 accept="image/*"

腾讯云代理商
海外云服务器