小编dea*_*nha的帖子

ssl/asyncio:即使处理错误也会追溯

尝试从URL下载和处理jpeg.我的问题是不适合的网址有些证书验证失败,因为这些网址都是老可能不再是值得信赖的,但是,当我try...except...SSLCertVerificationError,我仍然得到回溯.

系统:Linux 4.17.14-arch1-1-ARCH,python 3.7.0-3,aiohttp 3.3.2

最小的例子:

import asyncio
import aiohttp
from ssl import SSLCertVerificationError

async def fetch_url(url, client):
    try:
        async with client.get(url) as resp:
            print(resp.status)
            print(await resp.read())
    except SSLCertVerificationError as e:
        print('Error handled')

async def main(urls):
    tasks = []
    async with aiohttp.ClientSession(loop=loop) as client:
        for url in urls:
            task = asyncio.ensure_future(fetch_url(url, client))
            tasks.append(task)
        return await asyncio.gather(*tasks)

loop = asyncio.get_event_loop()
loop.run_until_complete(main(['https://images.photos.com/']))
Run Code Online (Sandbox Code Playgroud)

输出:

SSL handshake failed on verifying the certificate
protocol: <asyncio.sslproto.SSLProtocol object at 0x7ffbecad8ac8>
transport: <_SelectorSocketTransport fd=6 …
Run Code Online (Sandbox Code Playgroud)

python ssl openssl python-asyncio aiohttp

11
推荐指数
1
解决办法
2269
查看次数

标签 统计

aiohttp ×1

openssl ×1

python ×1

python-asyncio ×1

ssl ×1