requests — Client HTTP

Le module requests fournit une API client HTTP/HTTPS minimale, similaire à la bibliothèque Python requests. Chaque fonction de requête renvoie un objet requests.Response.

Exemple

import requests

# GET a JSON resource.
r = requests.get("https://httpbin.org/get")
print(r.status_code, r.reason)
print(r.json())

# POST JSON.
r = requests.post(
    "https://httpbin.org/post",
    json={"id": 1, "value": 42},
    headers={"X-Source": "openmv"},
)
print(r.json())

Classe Response

class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)

Représente une réponse HTTP. Les instances sont renvoyées par requests.request et par les fonctions auxiliaires propres à chaque méthode.

status_code: int

Code d’état HTTP entier renvoyé par le serveur.

reason: str

Phrase explicative renvoyée par le serveur (str décodée).

encoding: str

Encodage de chaîne utilisé pour décoder requests.Response.headers et requests.Response.content. Vaut "utf-8" par défaut.

headers: str

En-têtes de réponse décodés avec requests.Response.encoding et renvoyés sous forme de str.

content: str

Corps de la réponse décodé avec requests.Response.encoding et renvoyé sous forme de str.

json() dict

Analyse requests.Response.content en tant que JSON et renvoie l’objet résultant.

Fonctions

requests.request(method: str, url: str, data: bytes | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) Response

Envoie une requête HTTP à url et renvoie un requests.Response.

  • method — Méthode HTTP sous forme de str (par ex. "GET", "POST").

  • url — URL cible. Doit commencer par http:// ou https://.

  • data — Corps brut de la requête. S’il est défini, Content-Length est ajouté automatiquement.

  • json — Objet sérialisé en JSON et envoyé comme corps. Définit Content-Type: application/json.

  • files — Dictionnaire associant un nom de champ à un tuple (filename, fileobj). Envoyé en tant que multipart/form-data.

  • headers — Dictionnaire d’en-têtes de requête supplémentaires.

  • auth — Tuple (username, password) pour l’authentification HTTP Basic.

  • stream — Accepté pour la compatibilité de l’API ; non utilisé.

requests.head(url: str, **kw: Any) Response

Envoie une requête HTTP HEAD et renvoie un Response.

HEAD est identique à GET sauf que le serveur ne répond qu’avec la ligne d’état et les en-têtes ; le corps est vide. Utilisez-la pour vérifier si une ressource existe, inspecter Content-Length / Content-Type sans télécharger la charge utile, ou sonder une URL avant d’émettre un GET plus lourd.

Arguments :

  • url – URL cible ; doit commencer par http:// ou https://.

  • headers (kwarg) – dictionnaire d’en-têtes de requête supplémentaires.

  • auth (kwarg) – tuple (username, password) pour l’authentification HTTP Basic.

data / json / files / stream de request() sont acceptés par exhaustivité mais ont rarement un sens pour HEAD.

requests.get(url: str, **kw: Any) Response

Envoie une requête HTTP GET et renvoie un Response.

GET est le verbe standard pour récupérer une représentation de la ressource identifiée par url. Il est sûr (ne provoque aucun changement d’état côté serveur) et idempotent.

Arguments :

  • url – URL cible ; doit commencer par http:// ou https://.

  • headers (kwarg) – dictionnaire d’en-têtes de requête supplémentaires (par exemple Authorization ou Accept).

  • auth (kwarg) – tuple (username, password) pour l’authentification HTTP Basic.

Un corps de requête via data / json est autorisé par la fonction sous-jacente request() mais ignoré par la plupart des serveurs.

requests.post(url: str, **kw: Any) Response

Envoie une requête HTTP POST et renvoie un Response.

POST soumet des données à url, généralement en créant une nouvelle ressource subordonnée, en déclenchant la soumission d’un formulaire ou en invoquant une action. Il n’est ni sûr ni idempotent : des appels répétés peuvent créer des ressources en double.

Arguments :

  • url – URL cible ; doit commencer par http:// ou https://.

  • data (kwarg) – corps brut de la requête (de type bytes). Envoie automatiquement un en-tête Content-Length.

  • json (kwarg) – objet sérialisé en JSON et envoyé comme corps. Définit Content-Type: application/json.

  • files (kwarg) – dictionnaire associant un nom de champ à (filename, fileobj). Envoyé en tant que multipart/form-data.

  • headers (kwarg) – dictionnaire d’en-têtes de requête supplémentaires.

  • auth (kwarg) – tuple (username, password) pour l’authentification HTTP Basic.

Passez au plus un seul de data / json / files.

requests.put(url: str, **kw: Any) Response

Envoie une requête HTTP PUT et renvoie un Response.

PUT remplace la ressource à url par la représentation fournie, en la créant si elle n’existe pas. Il est idempotent : répéter un PUT identique produit le même état final.

Arguments :

  • url – URL cible ; doit commencer par http:// ou https://.

  • data (kwarg) – corps brut de remplacement (de type bytes).

  • json (kwarg) – objet sérialisé en JSON et envoyé comme corps de remplacement. Définit Content-Type: application/json.

  • headers (kwarg) – dictionnaire d’en-têtes de requête supplémentaires.

  • auth (kwarg) – tuple (username, password) pour l’authentification HTTP Basic.

Passez soit data soit json pour transporter la nouvelle représentation.

requests.patch(url: str, **kw: Any) Response

Envoie une requête HTTP PATCH et renvoie un Response.

PATCH applique une modification partielle à la ressource à url – seuls les champs contenus dans le corps de la requête changent. Contrairement à PUT, il n’est pas tenu d’être idempotent (bien que de nombreuses API le rendent tel).

Arguments :

  • url – URL cible ; doit commencer par http:// ou https://.

  • data (kwarg) – corps de delta brut (de type bytes). Le format dépend du serveur (par ex. JSON Patch, JSON Merge Patch).

  • json (kwarg) – objet delta sérialisé en JSON. Définit Content-Type: application/json.

  • headers (kwarg) – dictionnaire d’en-têtes de requête supplémentaires.

  • auth (kwarg) – tuple (username, password) pour l’authentification HTTP Basic.

requests.delete(url: str, **kw: Any) Response

Envoie une requête HTTP DELETE et renvoie un Response.

DELETE demande la suppression de la ressource à url. Il est idempotent : supprimer une ressource déjà supprimée n’est pas une erreur (le serveur renvoie généralement un 404, mais l’état final est le même).

Arguments :

  • url – URL cible ; doit commencer par http:// ou https://.

  • headers (kwarg) – dictionnaire d’en-têtes de requête supplémentaires.

  • auth (kwarg) – tuple (username, password) pour l’authentification HTTP Basic.

Un corps via data / json est autorisé par la fonction sous-jacente request() mais rarement utilisé avec DELETE.