为了账号安全,请及时绑定邮箱和手机立即绑定

异步 Python - 触发并忘记 HTTP 请求

异步 Python - 触发并忘记 HTTP 请求

青春有我 2021-06-21 17:59:34
不确定这是否可以实现。我想从脚本触发 HTTP POST 请求,但不等待响应。相反,我想立即返回。我尝试了一些方法:#!/usr/bin/env python3import asyncioimport aiohttpasync def fire():    await client.post('http://httpresponder.com/xyz')async def main():    asyncio.ensure_future(fire())if __name__ == '__main__':    loop = asyncio.get_event_loop()    client = aiohttp.ClientSession(loop=loop)    loop.run_until_complete(main())脚本立即返回且没有错误,但 HTTP 请求永远不会到达目的地。我可以触发 POST 请求,但不等待服务器的响应,只是在发送请求的那一刻终止吗?
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我已经回答了一个相当类似的问题。


async def main():

    asyncio.ensure_future(fire())

ensure_future 安排 coro 执行,但不等待其完成,run_until_complete也不等待所有期货的完成。


这应该解决它:


async def main():

    await fire()


查看完整回答
反对 回复 2021-06-29
  • 2 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信