Comment utiliser la bibliothèque de requêtes Python pour HTTP

La bibliothèque requests ​​est un module Python populaire qui simplifie le processus de création de requêtes HTTP. Il élimine la complexité de la gestion des requêtes et des réponses, facilitant ainsi l'interaction avec les services Web et les API. Dans cet article, nous allons explorer les bases de l'utilisation de la bibliothèque requests, notamment comment envoyer différents types de requêtes HTTP et gérer les réponses.

Installation de la bibliothèque de requêtes

Avant de pouvoir utiliser la bibliothèque requests, vous devez l'installer. Vous pouvez l'installer en utilisant pip, le gestionnaire de paquets Python. Exécutez la commande suivante dans votre terminal:

pip install requests

Créer une requête GET simple

La requête HTTP la plus basique est une requête GET, qui récupère des données à partir d'un serveur. Voici comment vous pouvez utiliser la bibliothèque requests ​​pour effectuer une requête GET:

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

Dans cet exemple, nous envoyons une requête GET à l'API GitHub et imprimons le code d'état HTTP et le contenu de la réponse au format JSON.

Envoi de requêtes POST

Les requêtes POST sont utilisées pour envoyer des données à un serveur, telles que des soumissions de formulaires. Voici comment envoyer une requête POST avec la bibliothèque requests:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

Dans cet exemple, nous envoyons une requête POST avec des données de formulaire au service de test httpbin.org et imprimons le code d'état et le contenu de la réponse.

Gestion des paramètres de requête

Parfois, vous devez inclure des paramètres de requête dans vos requêtes. La bibliothèque requests ​​facilite cette tâche en vous permettant de transmettre des paramètres sous forme de dictionnaire:

import requests

params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)

Dans cet exemple, nous incluons les paramètres de requête dans une requête GET et imprimons l'URL finale avec les paramètres inclus.

Travailler avec les en-têtes

Vous devrez peut-être inclure des en-têtes personnalisés dans vos requêtes, par exemple pour l'authentification ou pour spécifier des types de contenu. Voici comment ajouter des en-têtes à vos requêtes:

import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())

Dans cet exemple, nous incluons un en-tête d’autorisation dans la demande à l’API GitHub et imprimons le code d’état et le contenu de la réponse.

Gestion des délais d'attente et des exceptions

Il est important de gérer les problèmes potentiels tels que les dépassements de délai réseau et autres exceptions. La bibliothèque requests ​​vous permet de spécifier des dépassements de délai et d'intercepter des exceptions:

import requests
from requests.exceptions import RequestException

try:
    response = requests.get('https://httpbin.org/delay/5', timeout=3)
    response.raise_for_status()
    print(response.status_code)
    print(response.text)
except RequestException as e:
    print(f'An error occurred: {e}')

Dans cet exemple, nous définissons un délai d'expiration pour la requête et capturons toutes les exceptions qui se produisent, en imprimant un message d'erreur si quelque chose ne va pas.

Conclusion

La bibliothèque requests ​​est un outil puissant et convivial pour effectuer des requêtes HTTP en Python. Que vous récupériez des données à partir d'API, envoyiez des soumissions de formulaires ou gériez des en-têtes personnalisés, la bibliothèque requests ​​facilite l'exécution de ces tâches avec seulement quelques lignes de code. En maîtrisant les bases abordées dans cet article, vous serez bien équipé pour interagir avec les services Web et les API dans vos projets Python.