如何使用asyncio open_connection函数连接地址

时间:2019-01-29 04:26:45

标签: python connection python-asyncio

我想使用asyncio库连接多个地址,例如 '127.0.0.1:8000/hello'

但是我可以在哪里放置“ / hello”部分?我怎么称呼这部分呢? (端点?静态网址?)

asyncio.open_connection('127.0.0.1', 8000)

1 个答案:

答案 0 :(得分:2)

  

但是,在可以我把/hello一部分?

asyncio.open_connection打开到给定远程端点的原始TCP连接。格式为127.0.0.1:8000/hello的地址强烈表示HTTP连接。 HTTP是您使用TCP连接(在你的情况下127.0.0.1和端口8000)的给定的主机和端口和发送的请求建立在TCP,顶部的协议指定格式,并向服务器提供响应的答案。

HTTP通信是一个复杂的主题,不是您想从头开始实现的东西。幸运的是有成熟的是为您处理ASYNCIO感知库,如aiohttp。使用该库连接到服务器可能看起来像这样:

import aiohttp, asyncio

async def connect_to(url, session):
    async with session.get(url) as response:
        return await response.data()

async def main():
    async with aiohttp.ClientSession() as session:
        data = connect_to('http:/127.0.0.1:8000/hello')
        # do something with data, or connect to other urls

asyncio.run(main())
  

和我怎么能叫这部分? (端点?静态网址?)

该部分通常称为网址的路径,例如the RFC的3.3节中有更多详细信息。