Niquests: HTTP for Humans™#
Release v3.4.7. (Installation)
Niquests is an elegant and simple HTTP library for Python, built for human beings. It is designed to be a drop-in replacement for Requests that is no longer under feature freeze.
Behold, the power of Niquests:
>>> import niquests
>>> s = niquests.Session(resolver="doh+google://", multiplexed=True)
>>> r = s.get('https://pie.dev/basic-auth/user/pass', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.oheaders.content_type.charset
'utf8'
>>> r.encoding
'utf-8'
>>> r.text
'{"authenticated": true, ...'
>>> r.json()
{'authenticated': True, ...}
>>> r
<Response HTTP/3 [200]>
>>> r.ocsp_verified
True
>>> r.conn_info.established_latency
datetime.timedelta(microseconds=38)
See similar code, sans Niquests.
Niquests allows you to send HTTP/1.1, HTTP/2 and HTTP/3 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your POST data. Keep-alive and HTTP connection pooling are 100% automatic, thanks to urllib3.future.
Beloved Features#
Niquests is ready for today’s web.
DNS over HTTPS, DNS over QUIC, DNS over TLS, and DNS over UDP
Automatic Content Decompression and Decoding
OS truststore by default, no more certifi!
OCSP Certificate Revocation Verification
Advanced connection timings inspection
In-memory certificates (CAs, and mTLS)
Browser-style TLS/SSL Verification
Sessions with Cookie Persistence
Keep-Alive & Connection Pooling
International Domains and URLs
Automatic honoring of .netrc
Basic & Digest Authentication
Familiar dict–like Cookies
Object-oriented headers
Multi-part File Uploads
Chunked HTTP Requests
Fully type-annotated!
SOCKS Proxy Support
Connection Timeouts
Streaming Downloads
HTTP/2 by default
HTTP/3 over QUIC
Multiplexed!
Thread-safe!
DNSSEC!
Async!
Niquests officially supports Python 3.7+, and runs great on PyPy.
The User Guide#
This part of the documentation, which is mostly prose, begins with some background information about Niquests, then focuses on step-by-step instructions for getting the most out of Niquests.
- Installation of Niquests
- Quickstart
- Make a Request
- Passing Parameters In URLs
- Response Content
- Binary Response Content
- JSON Response Content
- Raw Response Content
- Custom Headers
- More complicated POST requests
- POST a Multipart Form-Data without File
- POST a Multipart-Encoded File
- Response Status Codes
- Response Headers
- Cookies
- Redirection and History
- Timeouts
- Errors and Exceptions
- HTTP/3 over QUIC
- Multiplexed Connection
- Session Gather
- Async session
- Async and Multiplex
- AsyncResponse for streams
- Scale your Session / Pool
- DNS Resolution
- Advanced Usage
- Session Objects
- Request and Response Objects
- Prepared Requests
- SSL Cert Verification
- Client Side Certificates
- In-memory Certificates
- CA Certificates
- Body Content Workflow
- Keep-Alive
- Streaming Uploads
- Chunk-Encoded Requests
- POST Multiple Multipart-Encoded Files
- Event Hooks
- Track upload progress
- Custom Authentication
- Streaming Requests
- Proxies
- Compliance
- HTTP Verbs
- Custom Verbs
- Link Headers
- Transport Adapters
- Blocking Or Non-Blocking?
- Header Ordering
- Timeouts
- OCSP or Certificate Revocation
- Specify HTTP/3 capable endpoint preemptively
- Increase the default Alt-Svc cache size
- Disable HTTP/2, and/or HTTP/3
- Thread Safety
- Use a custom CA without loosing the official ones
- Disable either IPv4 or IPv6
- Setting the source network adapter
- Authentication
The Community Guide#
This part of the documentation, which is mostly prose, details the Niquests ecosystem and community.
The API Documentation / Guide#
If you are looking for information on a specific function, class, or method, this part of the documentation is for you.
The Contributor Guide#
If you want to contribute to the project, this part of the documentation is for you.
There are no more guides. You are now guideless. Good luck.