是否有用于非阻塞HTTP GET请求的urequests的异步IO兼容版本?论微型Python

2024-06-16 10:00:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如何为带有GET请求的标准HTTP/1.1 Web服务器运行uasyncio长轮询任务

由于我还需要运行来自这些客户机的GET或POST请求,所以这需要是非阻塞的

我的搜索仅显示以下脚本: https://github.com/brianmay/robotica-remote/blob/master/src/arequests.py

我试过了

# MicroPython v1.15 on 2021-04-18; ESP32

import uasyncio as asyncio
import arequests, wifi


async def poll():
    r= arequests.get('http://10.0.0.125:8000/long')
    print( r )      #>>>    <generator object 'get' at 3ffedf50>
    await response= r.__next__()
    await response= r.read()
    await response= r.text()
    yield r.
    
    
async def main():
    while True:
        await asyncio.sleep(1)
        print(' . ',end='')
    
    
def run():
    loop = asyncio.get_event_loop()
    loop.create_task( poll() )
    loop.run_until_complete( main() )


run()

目标是使用现有基础设施在防火墙后面运行定制的micropython传感器(没有MQTT、CoAP可用)

(阻止请求和浏览器测试中的长轮询都有效)


Tags: runimportloopasynciogetasyncmainresponse