Niquests is a new Python library for HTTP requests, designed to replace Requests. But hold on, it’s not just a clone… In fact, this Python library offers advanced features such as:
- Connection multiplexing to create multiple HTTP requests on the same connection, which improves performance and reduces latency.
- Keep-alive and connection pooling to keep connections open, reducing the time needed to establish new ones.
- Automatic decoding of compressed and encoded content (e.g., gzip and JSON).
- Certificate revocation checking using the OCSP (Online Certificate Status Protocol).
- Storing certificates in RAM to improve performance and reduce disk usage.
- The ability to prepare requests in advance to reduce sending time.
Under the hood, Niquests also uses principles such as asynchronous I/O, event-driven models, and thread-safe programming to boost performance and reduce latency.
Enough theory, let’s dive into practice! Here’s how to use Niquests to make HTTP requests with just a few lines of code:
Start by installing Niquests:
pip install niquests
Then, import the niquests
module into your script:
import niquests
Create a session instance:
s = niquests.Session()
You can now make GET, POST, and other requests using the corresponding methods. For example, to make a GET request:
r = s.get('https://httpbin.org/get')
Access the response data through its attributes:
print(r.text) # response content as text
print(r.status_code) # HTTP status code
print(r.headers) # response headers
You can also pass parameters in the URL or request body:
payload = {'key1': 'value1', 'key2': 'value2'}
r = s.post("https://httpbin.org/post", data=payload)
For asynchronous requests, use an async with
context:
async with niquests.AsyncSession() as s:
r = await s.get('https://httpbin.org/get')
And that’s it! You now know how to use Niquests to make HTTP requests. To dive deeper, feel free to explore the official documentation, which is packed with examples and advanced features.
In short, Niquests offers advanced capabilities to improve performance and reduce latency in your Python HTTP requests. Plus, I find this library quite easy to get the hang of—what more could you ask for?