代码之家  ›  专栏  ›  技术社区  ›  sanyassh Khushboo Tahir

为什么会引发asyncio.TimeoutError?

  •  2
  • sanyassh Khushboo Tahir  · 技术社区  · 7 年前

    我正在执行aiohttp.ClientSession实例的request(),有时会引发asyncio.TimeoutError。我认为在这种情况下必须引发aiohttp.ServerTimeoutError,它源自asyncio.TimeoutError,如本文所述: http://docs.aiohttp.org/en/stable/client_reference.html#aiohttp.ServerTimeoutError

    async def example_of_code():
        session = aiohttp.ClientSession()
        response = await session.request(
            method='POST',
            url='some_url',
            params={'some': 'params'},
            data={'some': 'data'},
            headers={'some': 'headers'},
            timeout=10
        )
        return await response.json()
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Mikhail Gerasimov    7 年前

    aiohttp.ServerTimeoutError 和 asyncio.TimeoutError

    asyncio.TimeoutError 是一个一般超时,它可能是由于许多不同的原因(从不存在的域开始)或太多的数据无法读取而发生的。

    aiohttp.ServerTimeoutError 在aiohttp中作为搜索 source code reveales用于 one place only -当与服务器建立连接时,但从套接字读取某些数据需要花费太长时间。您也可以检查aiohttp tests ServerTimeoutError .

    网络请求的操作非常复杂,在许多不同的地方都可能出错。不要试图理解它们(如果这不是你的目的)。只要你只想做请求,就接住 TimeoutError (自 服务器超时错误 subclass )看看你是否应该改变 timeout