Skip to content

HTTPConnection

当你想要定义与 HTTP 和 WebSockets 都兼容的依赖项时,你可以定义一个参数,该参数接受 HTTPConnection 而不是 RequestWebSocket

你可以从 fastapi.requests 导入它:

from fastapi.requests import HTTPConnection

fastapi.requests.HTTPConnection

HTTPConnection(scope, receive=None)

Bases: Mapping[str, Any]

A base class for incoming HTTP connections, that is used to provide any functionality that is common to both Request and WebSocket.

PARAMETER DESCRIPTION
scope

TYPE: Scope

receive

TYPE: Receive | None DEFAULT: None

Source code in starlette/requests.py
71
72
73
def __init__(self, scope: Scope, receive: Receive | None = None) -> None:
    assert scope["type"] in ("http", "websocket")
    self.scope = scope

scope instance-attribute

scope = scope

app property

app

url property

url

base_url property

base_url

headers property

headers

query_params property

query_params

path_params property

path_params

cookies property

cookies

client property

client

session property

session

auth property

auth

user property

user

state property

state

url_for

url_for(name, /, **path_params)
PARAMETER DESCRIPTION
name

TYPE: str

**path_params

TYPE: Any DEFAULT: {}

Source code in starlette/requests.py
177
178
179
180
def url_for(self, name: str, /, **path_params: typing.Any) -> URL:
    router: Router = self.scope["router"]
    url_path = router.url_path_for(name, **path_params)
    return url_path.make_absolute_url(base_url=self.base_url)