Skip to content

Responses

The response is yielded in the HttpClient async context.

Keys:

  • type (Unicode string) - Currently the only response is "http.response".
  • acgi["version"] (Unicode string) - Version of the ACGI spec.
  • http_version (Unicode string) - One of "1.0", "1.1" or "2".
  • stream_id (int) - The HTTP/2 stream id, otherwise None.
  • status_code (int) - The HTTP status code.
  • headers (Iterable[[byte string, byte string]]) - A iterable of [name, value] two-item iterables, where name is the header name, and value is the header value. Order must be preserved in the HTTP response. Header names must be lowercased. Optional; defaults to an empty list. Pseudo headers (present in HTTP/2 and HTTP/3) must not be present.
  • more_body (bool) - Signifies if the body has more content.
  • body (AsyncIterable[byte string]) - The body content.

For the above request the response might look as follows:

{
    'type': 'http.response',
    'acgi': {'version': '1.0'},
    'http_version': '2',
    'stream_id': 1,
    'status_code': 200,
    'headers': [
        (b'content-type', b'text/html'),
        (b'content-length', b'53727'),
        (b'last-modified', b'Sat, 15 Feb 2020 0...26:32 GMT'),
        ...
    ],
    'more_body': True,
    'body': <async_generator obj...5ede8f320>,
}

Response Body

The response body (response["body"]) can be iterated over asynchronusly.

async for part in response['body']:
    print(part)