@pedroleaoc voici un petit script Python d’exemple qui montre comment effectuer des requêtes authentifiées et comment envoyer les données de la requête pour les requêtes PUT/POST.
# discourse-api-demo.py
import requests
from requests.structures import CaseInsensitiveDict
# Requête GET de base vers une URL publique, aucun en-tête nécessaire.
url = "http://localhost:3000/posts/10.json"
resp = requests.get(url)
print(resp.status_code)
print(resp.content)
# Requête GET vers un point de terminaison privé. Des en-têtes d'authentification sont nécessaires.
url = "http://localhost:3000/admin/users/list/active.json"
headers = {'Api-Username': 'system', 'Api-Key': '5c1c57915e2...'}
resp = requests.get(url, headers=headers)
print(resp.status_code)
print(resp.content)
# Requête PUT avec un corps de requête
url = "http://localhost:3000/posts/10.json"
data = { 'raw': "Superbe message, mais voici une mise à jour du corps du message", 'edit_reason': "J'ai modifié cela parce que je le peux." }
resp = requests.put(url, headers=headers, json=data)
print(resp.status_code)
print(resp.content)
Depuis Quickstart — Requests 2.33.1 documentation
Au lieu d’encoder vous-même le
dict, vous pouvez également le passer directement en utilisant le paramètrejson(ajouté dans la version 2.4.2) et il sera encodé automatiquement :
url = 'https://api.github.com/some/endpoint' >>> payload = {'some': 'data'} >>> r = requests.post(url, json=payload)Notez que le paramètre
jsonest ignoré sidataoufilesest passé.L’utilisation du paramètre
jsondans la requête modifiera leContent-Typedans l’en-tête enapplication/json.