Faire des requêtes HTTP en Python
14 janvier 2023Imaginons que nous voulions faire une requête vers l’API publique de GitHub,
sur l’URL suivante : https://api.github.com/users/<user>/repos
Dans un premier temps on peut tester avec curl
pour voir à quoi ressemble
le résultat :
curl https://api.github.com/users/nikaro/repos
Pour cet exemple on obtient du JSON en réponse, bonne nouvelle Python sait travailler nativement avec JSON.
urllib
Si on veut utiliser la bibliothèque standard de Python, on peut utiliser
urllib
et
json
.
import json
import urllib.request
# on fait la requête HTTP
response = urllib.request.urlopen("https://api.github.com/users/nikaro/repos")
# on lit le contenu de la réponse
content = response.read()
# on parse le contenu afin de le "convertir" en objet Python
data = json.loads(content)
print(data[0]["html_url"])
httpx
Si on veut se faciliter la vie, surtout quand on commence à faire des choses plus compliqués, on peut utiliser la bibliothèque tierce HTTPX.
import httpx
response = httpx.get("https://api.github.com/users/nikaro/repos")
data = response.json()