A requests-like library for web interfacing

  • Author(s): ladyada, Paul Sokolovsky, Scott Shawcroft

Implementation Notes

Adapted from

micropython-lib consists of multiple modules from different sources and authors. Each module comes under its own licensing terms. Short name of a license can be found in a file within a module directory (usually metadata.txt or Complete text of each license used is provided at

author=’Paul Sokolovsky’ license=’MIT’

Software and Dependencies:

exception adafruit_requests.OutOfRetries

Raised when requests has retried to make a request unsuccessfully.

class adafruit_requests.Response(sock: LegacyCircuitPythonSocketType | CircuitPythonSocketType | StandardPythonSocketType, session: Session)

The response from a request, contains all the headers/content

close() None

Close out the socket. If we have a session free it instead.

property content: bytes

The HTTP content direct from the socket, as bytes

property headers: Dict[str, str]

The response headers. Does not include headers from the trailer until the content has been read.

iter_content(chunk_size: int = 1, decode_unicode: bool = False) bytes

An iterator that will stream data by only reading ‘chunk_size’ bytes and yielding them, when we can’t buffer the whole datastream

json() Any

The HTTP content, parsed into a json dictionary

reason: bytearray

The status reason returned by the server

status_code: int

The status code returned by the server

property text: str

The HTTP content, encoded into a string according to the HTTP header encoding

class adafruit_requests.Session(socket_pool: module, ssl_context: SSLContext | _FakeSSLContext | None = None, session_id: str | None = None)

HTTP session that shares sockets and ssl context.

delete(url: str, **kw) Response

Send HTTP DELETE request

get(url: str, **kw) Response

Send HTTP GET request

head(url: str, **kw) Response

Send HTTP HEAD request

options(url: str, **kw) Response

Send HTTP OPTIONS request

patch(url: str, **kw) Response

Send HTTP PATCH request

post(url: str, **kw) Response

Send HTTP POST request

put(url: str, **kw) Response

Send HTTP PUT request

request(method: str, url: str, data: Any | None = None, json: Any | None = None, headers: Dict[str, str] | None = None, stream: bool = False, timeout: float = 60, allow_redirects: bool = True) Response

Perform an HTTP request to the given url which we will parse to determine whether to use SSL (’https://’) or not. We can also send some provided ‘data’ or a json dictionary which we will stringify. ‘headers’ is optional HTTP headers sent along. ‘stream’ will determine if we buffer everything, or whether to only read only when requested