adafruit_requests

A requests-like library for web interfacing

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

Implementation Notes

Adapted from https://github.com/micropython/micropython-lib/tree/master/urequests

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 setup.py). Complete text of each license used is provided at https://github.com/micropython/micropython-lib/blob/master/LICENSE

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

socket: LegacyCircuitPythonSocketType | CircuitPythonSocketType | StandardPythonSocketType

The underlying socket object (CircuitPython extension, not in standard requests)

Under the following circumstances, calling code may directly access the underlying socket object:

  • The request was made with stream=True

  • The request headers included {'connection': 'close'}

  • No methods or properties on the Response object that access the response content may be used

Methods and properties that access response headers may be accessed.

It is still necessary to close the response object for correct management of sockets, including doing so implicitly via with requests.get(...) as response.

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: ModuleType, 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, files: Dict[str, tuple] | None = None) 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