** Comment accéder à HTTP avec Python **
Cette fois, nous utiliserons la bibliothèque Requests pour gérer les API Web de style REST.
Avant de l'utiliser, abordons brièvement les méthodes HTTP / API REST. Le type de demande faite du client au serveur s'appelle une méthode, et il existe essentiellement les huit types suivants.
Méthode | La description |
---|---|
GET | Obtenez des ressources |
HEAD | Obtenez uniquement les en-têtes HTTP pour les ressources |
POST | Envoyer des données du client au serveur |
PUT | Sauvegarder les ressources |
DELETE | Supprimer la ressource |
CONNECT | Établir un tunnel avec le serveur |
OPTIONS | Découvrez les méthodes autorisées par le serveur |
TRACE | Examiner la route réseau vers le serveur |
L'API REST est une implémentation d'API qui utilise quatre méthodes HTTP «GET», «POST», «PUT» et «DELETE».
Méthode HTTP | Comportement dans REST |
---|---|
GET | Acquisition de ressources (LIRE) |
POST | Création de ressources (CREATE) |
PUT | Mise à jour des ressources (UPDATE) |
DELETE | Supprimer la ressource (DELETE) |
L'installation se fait avec pip.
pip install requests
En gros, c'est OK si vous spécifiez l'URL comme suit (les paramètres sont facultatifs)
import requests
url = "http://xxxxx"
pyaload = {"key1":"value1", "key2":"value2"}
r = requests.get(url, params=payload)
L'utilisation est la même sauf pour GET.
r = requests.post(url)
r = requests.put(url)
r = requests.delete(url)
réponse
La réponse du serveur peut être confirmée comme suit selon le format de réponse.
#texte
r.text
#binaire
r.content
# JSON
r.json()
#Réponse brute
r.raw
#Code d'état HTTP de la réponse
r.status_code
Essayez de frapper cette API de recherche de code postal à partir de Python.
import requests
url = "http://zip.cgis.biz/xml/zip.php"
payload = {"zn": "1310045"}
r = requests.get(url, params=payload)
r.text
** Résultat d'exécution **
'<?xml version="1.0" encoding="utf-8" ?>\n<ZIP_result>\n<result name="ZipSearchXML" />\n<result version="1.01" />\n<result request_url="http%3A%2F%2Fzip.cgis.biz%2Fxml%2Fzip.php%3Fzn%3D1310045" />\n<result request_zip_num="1310045" />\n<result request_zip_version="none" />\n<result result_code="1" />\n<result result_zip_num="1310045" />\n<result result_zip_version="0" />\n<result result_values_count="1" />\n<ADDRESS_value>\n<value state_kana="Tokyo" />\n<value city_kana="Sumidaku" />\n<value address_kana="Ossiage" />\n<value company_kana="none" />\n<value state="Tokyo" />\n<value city="Quartier Sumida" />\n<value address="Faire monter" />\n<value company="none" />\n</ADDRESS_value>\n</ZIP_result>\n'