Как я могу отправить HTTP-запрос из моего приложения FastAPI на другой сайт (API)?Python

Программы на Python
Anonymous
Как я могу отправить HTTP-запрос из моего приложения FastAPI на другой сайт (API)?

Сообщение Anonymous »

Я пытаюсь отправить 100 запросов за раз на сервер http://httpbin.org/uuid, используя следующий фрагмент кода

Код: Выделить всё

from fastapi import FastAPI
from time import sleep
from time import time
import requests
import asyncio

app = FastAPI()

URL= "http://httpbin.org/uuid"

# @app.get("/")
async def main():
r = requests.get(URL)
# print(r.text)

return r.text

async def task():
tasks = [main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main()]
# print(tasks)
# input("stop")
result = await asyncio.gather(*tasks)
print (result)

@app.get('/')
def f():
start = time()
asyncio.run(task())
print("time: ",time()-start)
Я использую FastAPI с Asyncio, чтобы добиться минимально возможного времени, около 3 секунд или меньше, но, используя описанный выше метод, я получаю общее время 66 секунд, что больше минуты. Я также хочу сохранить функцию main для дополнительных операций с r.text. Я понимаю, что для достижения такого низкого времени требуется параллелизм, но я не уверен, какую ошибку я здесь делаю.

Подробнее здесь: https://stackoverflow.com/questions/638 ... r-site-api

Вернуться в «Python»