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

使用aiohttp发送POST请求提示session未定义的问题排查

解决aiohttp中"session未定义"的错误

这问题很典型——你遇到的是变量作用域的问题!

你写的GET请求代码是在async with aiohttp.ClientSession() as session:的上下文块里,这个session变量的作用域只限于这个缩进的代码块内部。当你在这个块外面调用session.post()的时候,Python自然找不到这个变量,就会抛出"名称session未定义"的错误。

正确的写法示例

把post请求也放到ClientSession的上下文管理器里面,确保session变量在有效作用域内:

import aiohttp
import asyncio

async def main():
    async with aiohttp.ClientSession() as session:
        # 执行GET请求
        async with session.get('http://httpbin.org/get') as resp:
            print(resp.status)
            print(await resp.text())
        
        # 在同一个session上下文内执行POST请求
        async with session.post('http://httpbin.org/post', data=b'data') as post_resp:
            print(post_resp.status)
            print(await post_resp.text())

asyncio.run(main())

额外提醒

你写的POST请求URL里多了个首尾空格:' http://httpbin.org/post ',这个也要去掉,不然会导致URL解析错误哦!


内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:44:17