Как я могу соединиться с адресом, используя функцию asyncio open_connection - PullRequest
0 голосов
/ 29 января 2019

Я хотел бы соединиться с несколькими адресами, используя библиотеку asyncio, например '127.0.0.1:8000/hello'

Но где я могу поставить часть' / hello '?и как я могу назвать эту часть?(конечная точка? статический URL?)

asyncio.open_connection('127.0.0.1', 8000)

1 Ответ

0 голосов
/ 29 января 2019

Но куда я могу поместить /hello part?

asyncio.open_connection открывает необработанное TCP-соединение с данной удаленной конечной точкой.Адрес формы 127.0.0.1:8000/hello строго указывает на HTTP-соединение.HTTP - это протокол, построенный поверх TCP, где вы подключаетесь к данному хосту и порту (127.0.0.1 и порту 8000 в вашем случае), используя TCP, и отправляете запрос в указанном формате, и к которомусервер отвечает response .

HTTP-связь - сложная тема, которую вы не хотите реализовывать с нуля.К счастью, есть зрелые асинцио-зависимые библиотеки, которые справляются с этим, например, 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())

и как я могу вызвать эту часть?(конечная точка? статический URL?)

Эта часть обычно называется path URL, см., например, раздел 3.3 в RFC для получения более подробной информации.

...