If you're making multiple requests to the same server, you can keep open a
persistent connection by using a Client rather than making one-off requests.
If you do this, make sure to close the client when you're done:

You can also exert more fine-grained control over your requests and responses by
creating Request or StreamedRequest objects yourself and passing them to
Client.send.

This package is designed to be composable. This makes it easy for external
libraries to work with one another to add behavior to it. Libraries wishing to
add behavior should create a subclass of BaseClient that wraps another
Client and adds the desired behavior: