runtimepy.net.tcp.http package#

Module contents#

A module implementing a basic HTTP (multiple RFC’s) connection interface.

class runtimepy.net.tcp.http.HttpConnection(transport: Transport, protocol: QueueProtocol, **kwargs)[source]#

Bases: TcpConnection

A class implementing a basic HTTP interface.

env: ChannelEnvironment#
expecting_response: bool#
async get_handler(response: ResponseHeader, request: RequestHeader, request_data: bytearray | None) bytes | bytearray | memoryview | AsyncResponse | None[source]#

Sample handler.

classmethod get_log_prefix(is_ssl: bool = False) str[source]#

Get a logging prefix for this instance.

handlers: dict[HTTPMethod, Callable[[ResponseHeader, RequestHeader, bytearray | None], Awaitable[bytes | bytearray | memoryview | AsyncResponse | None]]] = {}#
headers: dict[str, str] = {'Cache-Control': 'public', 'Server': 'runtimepy', 'X-Content-Type-Options': 'nosniff'}#
identity = 'runtimepy/5.15.7'#
init() None[source]#

Initialize this instance.

log_alias = 'HTTP'#
logger: LoggerType#
markdown: str#
async post_handler(response: ResponseHeader, request: RequestHeader, request_data: bytearray | None) bytes | bytearray | memoryview | AsyncResponse | None[source]#

Sample handler.

async process_binary(data: bytes | bytearray | memoryview) bool[source]#

Process a binary frame.

remote_address: _Optional[_IpHost]#
async request(request: RequestHeader, data: bytes | bytearray | memoryview | None = None) Tuple[ResponseHeader, bytes | bytearray | memoryview | AsyncResponse | None][source]#

Make an HTTP request.

async request_json(request: RequestHeader, data: bytes | bytearray | memoryview | None = None) Any[source]#

Perform a request and convert the response to a data structure by decoding it as JSON.

runtimepy.net.tcp.http.to_json(response: Tuple[ResponseHeader, bytes | bytearray | memoryview | AsyncResponse | None]) Any[source]#

Get JSON data from an HTTP response.