Niquests: HTTP for Humans™¶
Release v3.13.1 (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.
Supports HTTP/1.1, HTTP/2 and HTTP/3 out-of-the-box without breaking a sweat!
Behold, the power of Niquests
>>> import niquests >>> s = niquests.Session(resolver="doh+google://") >>> r = s.get('https://pie.dev/basic-auth/user/pass', auth=('user', 'pass')) >>> r.status_code 200 >>> r.headers['content-type'] 'application/json; charset=utf-8' >>> r.oheaders.content_type.charset 'utf-8' >>> 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)
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
Network settings fine-tuning
HTTP/2 with prior knowledge
Object-oriented headers
Multi-part File Uploads
Post-Quantum Security
Chunked HTTP Requests
Fully type-annotated!
SOCKS Proxy Support
Connection Timeouts
Streaming Downloads
HTTP/2 by default
HTTP/3 over QUIC
Early Responses
Happy Eyeballs
Multiplexed!
Thread-safe!
WebSocket!
Trailers!
DNSSEC!
Async!
SSE!
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
- Happy Eyeballs
- WebSockets
- Server Side Event (SSE)
- Advanced Usage
- Session Objects
- Setting a Base URL
- Request and Response Objects
- Prepared Requests
- SSL Cert Verification
- Client Side Certificates
- In-memory Certificates
- CA Certificates
- Body Content Workflow
- Keep-Alive
- Streaming Uploads
- Async 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
- Prevent a domain from auto-upgrading to HTTP/3
- Increase the default Alt-Svc cache size
- Disable HTTP/1.1, HTTP/2, and/or HTTP/3
- HTTP/2 with prior knowledge
- Thread Safety
- Use a custom CA without loosing the official ones
- Disable either IPv4 or IPv6
- Setting the source network adapter
- Inspect network timings
- Verify Certificate Fingerprint
- TLS Fingerprint (like JA3)
- Tracking the real download speed
- HTTP Trailers
- Early Response
- 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.