You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac运行AIOHTTP客户端示例报错,求排查方案

问题解决步骤

1. 修复AsyncIO事件循环弃用警告

你的代码里使用的asyncio.get_event_loop()和loop.run_until_complete(main())在Python 3.7及以上版本已被弃用,替换为asyncio.run()即可消除警告:

修改后的代码:

import aiohttp
import asyncio

async def main():
    async with aiohttp.ClientSession() as session:
        # 注意:http://python.org会被重定向到https,直接写https更稳妥
        async with session.get('https://python.org') as response:
            print("Status:", response.status)
            print("Content-type:", response.headers['content-type'])
            html = await response.text()
            print("Body:", html[:15], "...")

# 替换原事件循环代码
asyncio.run(main())

2. 解决SSL证书验证失败问题

Mac系统下的Python常因证书链不完整导致SSL验证失败,可通过以下方法解决:

方法一:运行官方证书安装脚本

找到Python 3.10安装目录下的Install Certificates.command文件,通常路径为:
/Library/Frameworks/Python.framework/Versions/3.10/Install Certificates.command
双击运行该脚本,它会自动安装缺失的根证书,彻底解决验证问题。

方法二:临时跳过SSL验证(仅测试用,不推荐生产环境)

若只是临时测试,可在请求时添加ssl=False参数,但这会降低通信安全性:

async with session.get('https://python.org', ssl=False) as response:
    # 后续代码不变

方法三:指定自定义证书路径

如果你有可用的证书文件,可通过ssl参数指定证书路径:

import ssl
ssl_context = ssl.create_default_context(cafile="/path/to/your/certificate.pem")
async with session.get('https://python.org', ssl=ssl_context) as response:
    # 后续代码不变

内容的提问来源于stack exchange,提问作者Per-Åke Franklind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:55:10