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, session=None)

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


Drain the remaining ESP socket buffers. We assume we already got what we wanted.


The HTTP content direct from the socket, as bytes


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

iter_content(chunk_size=1, decode_unicode=False)

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


The HTTP content, parsed into a json dictionary


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

class adafruit_requests.Session(socket_pool, ssl_context=None)

HTTP session that shares sockets and ssl context.

delete(url, **kw)

Send HTTP DELETE request

get(url, **kw)

Send HTTP GET request

head(url, **kw)

Send HTTP HEAD request

patch(url, **kw)

Send HTTP PATCH request

post(url, **kw)

Send HTTP POST request

put(url, **kw)

Send HTTP PUT request

request(method, url, data=None, json=None, headers=None, stream=False, timeout=60)

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

adafruit_requests.delete(url, **kw)

Send HTTP DELETE request

adafruit_requests.get(url, **kw)

Send HTTP GET request

adafruit_requests.head(url, **kw)

Send HTTP HEAD request

adafruit_requests.patch(url, **kw)

Send HTTP PATCH request, **kw)

Send HTTP POST request

adafruit_requests.put(url, **kw)

Send HTTP PUT request

adafruit_requests.request(method, url, data=None, json=None, headers=None, stream=False, timeout=1)

Send HTTP request

adafruit_requests.set_socket(sock, iface=None)

Legacy API for setting the socket and network interface. Use a Session instead.