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.requestet par les fonctions auxiliaires propres à chaque méthode.- encoding: str¶
Encodage de chaîne utilisé pour décoder
requests.Response.headersetrequests.Response.content. Vaut"utf-8"par défaut.
- headers: str¶
En-têtes de réponse décodés avec
requests.Response.encodinget renvoyés sous forme destr.
- content: str¶
Corps de la réponse décodé avec
requests.Response.encodinget renvoyé sous forme destr.
- json() dict¶
Analyse
requests.Response.contenten 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 à
urlet renvoie unrequests.Response.method— Méthode HTTP sous forme destr(par ex."GET","POST").url— URL cible. Doit commencer parhttp://ouhttps://.data— Corps brut de la requête. S’il est défini,Content-Lengthest ajouté automatiquement.json— Objet sérialisé en JSON et envoyé comme corps. DéfinitContent-Type: application/json.files— Dictionnaire associant un nom de champ à un tuple(filename, fileobj). Envoyé en tant quemultipart/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
HEADet renvoie unResponse.HEADest identique àGETsauf 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, inspecterContent-Length/Content-Typesans télécharger la charge utile, ou sonder une URL avant d’émettre unGETplus lourd.Arguments :
url– URL cible ; doit commencer parhttp://ouhttps://.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/streamderequest()sont acceptés par exhaustivité mais ont rarement un sens pourHEAD.
- requests.get(url: str, **kw: Any) Response¶
Envoie une requête HTTP
GETet renvoie unResponse.GETest le verbe standard pour récupérer une représentation de la ressource identifiée parurl. Il est sûr (ne provoque aucun changement d’état côté serveur) et idempotent.Arguments :
url– URL cible ; doit commencer parhttp://ouhttps://.headers(kwarg) – dictionnaire d’en-têtes de requête supplémentaires (par exempleAuthorizationouAccept).auth(kwarg) – tuple(username, password)pour l’authentification HTTP Basic.
Un corps de requête via
data/jsonest autorisé par la fonction sous-jacenterequest()mais ignoré par la plupart des serveurs.
- requests.post(url: str, **kw: Any) Response¶
Envoie une requête HTTP
POSTet renvoie unResponse.POSTsoumet 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 parhttp://ouhttps://.data(kwarg) – corps brut de la requête (de typebytes). Envoie automatiquement un en-têteContent-Length.json(kwarg) – objet sérialisé en JSON et envoyé comme corps. DéfinitContent-Type: application/json.files(kwarg) – dictionnaire associant un nom de champ à(filename, fileobj). Envoyé en tant quemultipart/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
PUTet renvoie unResponse.PUTremplace la ressource àurlpar la représentation fournie, en la créant si elle n’existe pas. Il est idempotent : répéter unPUTidentique produit le même état final.Arguments :
url– URL cible ; doit commencer parhttp://ouhttps://.data(kwarg) – corps brut de remplacement (de typebytes).json(kwarg) – objet sérialisé en JSON et envoyé comme corps de remplacement. DéfinitContent-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
datasoitjsonpour transporter la nouvelle représentation.
- requests.patch(url: str, **kw: Any) Response¶
Envoie une requête HTTP
PATCHet renvoie unResponse.PATCHapplique 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 parhttp://ouhttps://.data(kwarg) – corps de delta brut (de typebytes). Le format dépend du serveur (par ex. JSON Patch, JSON Merge Patch).json(kwarg) – objet delta sérialisé en JSON. DéfinitContent-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
DELETEet renvoie unResponse.DELETEdemande 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 parhttp://ouhttps://.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/jsonest autorisé par la fonction sous-jacenterequest()mais rarement utilisé avecDELETE.