使用Uvicorn/FastAPI 發出下游HTTP 請求
問題:
問題:h11._util.LocalProtocolError: can't handle event type ConnectionClosed when role=SERVER and state=SEND_RESPONSE
問題:
發送多個>時向Uvicorn/FastAPI 上託管的API端點發出請求,錯誤為遇到:
解決方案:
連接池化: httpx.AsyncClient() 實例對同一主機的多個請求重用TCP 連接,從而優化
流支援:
httpx 為傳入和傳出請求提供內建串流響應處理。from fastapi import FastAPI, StreamingResponse from httpx import AsyncClient app = FastAPI() @app.on_event("startup") async def startup_event(): app.state.client = AsyncClient() @app.on_event("shutdown") async def shutdown_event(): await app.state.client.aclose() @app.get("/") async def home(): client = app.state.client req = client.build_request("GET", "https://www.example.com/") r = await client.send(req, stream=True) return StreamingResponse(r.aiter_raw())
範例用法:
以上是在 FastAPI 中並發下行 HTTP 請求時,httpx 如何解決「h11._util.LocalProtocolError」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!