Niquests - Boostez votre code Python avec cette bibliothèque de requêtes HTTP nouvelle génération

par Korben -

Niquests est une nouvelle bibliothèque Python pour les requêtes HTTP qui se destine à remplacer Requests. Mais attention, c’est pas juste un clone… En effet, cette lib Python offre des fonctionnalités avancées telles que :

  • La multiplexation de connexions pour créer plusieurs requêtes HTTP sur une même connexion, ce qui améliore les performances et réduit la latence.
  • Le keep-alive et le connection pooling pour maintenir les connexions ouvertes et réduire le temps d’ouverture de nouvelles connexions.
  • Le décodage automatique des contenus compressés et codés (par exemple, gzip et JSON).
  • La vérification de révocation des certificats en utilisant le protocole OCSP (Online Certificate Status Protocol).
  • Le stockage des certificats dans la mémoire vive pour améliorer les performances et réduire l’utilisation de disque dur.
  • La possibilité de préparer les requêtes pour réduire le temps d’envoi.

Sous le capot, Niquests utilise également des principes tels que l’I/O asynchrone, le modèle événementiel et la programmation thread-safe pour améliorer les performances et réduire la latence.

Allez, assez parlé, place à la pratique ! Voici comment utiliser Niquests pour effectuer des requêtes HTTP en quelques lignes de code :

Commencez par installer Niquests :

pip install niquests

Puis importez le module niquests dans votre script :

import niquests

Créez une instance de Session :

s = niquests.Session()

Vous pouvez maintenant effectuer des requêtes GET, POST, etc… en utilisant les méthodes correspondantes. Par exemple, pour une requête GET :

r = s.get('https://httpbin.org/get')

Accédez aux données de la réponse via ses attributs :

print(r.text) # contenu de la réponse en texte
print(r.status_code) # code de statut HTTP
print(r.headers) # en-têtes de réponse

Vous pouvez aussi passer des paramètres dans l’URL ou dans le corps de la requête :

payload = {'key1': 'value1', 'key2': 'value2'}
r = s.post("https://httpbin.org/post", data=payload)

Pour les requêtes asynchrones, utilisez un contexte async with :

async with niquests.AsyncSession() as s:
r = await s.get('https://httpbin.org/get')

Et voilà, vous savez maintenant utiliser Niquests pour effectuer des requêtes HTTP ! Pour aller plus loin, n’hésitez pas à explorer la documentation officielle qui regorge d’exemples et de fonctionnalités avancées.

Bref, Niquests offre des fonctionnalités avancées pour améliorer les performances et réduire la latence lors de vos requêtes HTTP en Python. Et en plus, je trouve cette lib assez simple à prendre en main, alors que demander de plus ?