Hoe je de Python Requests Library voor HTTP gebruikt
De requests
-bibliotheek is een populaire Python-module die het proces van het maken van HTTP-verzoeken vereenvoudigt. Het abstraheert de complexiteit van het verwerken van verzoeken en reacties, waardoor het eenvoudiger wordt om te communiceren met webservices en API's. In dit artikel verkennen we de basisprincipes van het gebruik van de requests
-bibliotheek, inclusief hoe u verschillende typen HTTP-verzoeken kunt verzenden en reacties kunt verwerken.
De Requests-bibliotheek installeren
Voordat u de requests
-bibliotheek kunt gebruiken, moet u deze installeren. U kunt deze installeren met pip
, de Python-pakketbeheerder. Voer de volgende opdracht uit in uw terminal:
pip install requests
Een eenvoudige GET-aanvraag maken
De meest basale HTTP-aanvraag is een GET-aanvraag, die gegevens van een server ophaalt. Zo kunt u de bibliotheek requests
gebruiken om een GET-aanvraag te maken:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
In dit voorbeeld sturen we een GET-verzoek naar de GitHub API en drukken we de HTTP-statuscode en de antwoordinhoud af in JSON-formaat.
POST-verzoeken verzenden
POST-verzoeken worden gebruikt om gegevens naar een server te sturen, zoals formulierinzendingen. Hier leest u hoe u een POST-verzoek verzendt met de bibliotheek requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
In dit voorbeeld sturen we een POST-verzoek met enkele formuliergegevens naar de httpbin.org-testservice en drukken we de statuscode en inhoud van het antwoord af.
Queryparameters verwerken
Soms moet u queryparameters in uw verzoeken opnemen. De bibliotheek requests
maakt dit eenvoudig door u toe te staan parameters als een woordenboek door te geven:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
In dit voorbeeld nemen we queryparameters op in een GET-verzoek en drukken we de uiteindelijke URL af met de parameters.
Werken met headers
Mogelijk moet u aangepaste headers opnemen in uw verzoeken, bijvoorbeeld voor authenticatie of om inhoudstypen te specificeren. Hier leest u hoe u headers aan uw verzoeken toevoegt:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
In dit voorbeeld voegen we een autorisatieheader toe aan de aanvraag voor de GitHub API en drukken we de statuscode en de antwoordinhoud af.
Omgaan met time-outs en uitzonderingen
Het is belangrijk om mogelijke problemen zoals netwerktime-outs en andere uitzonderingen aan te pakken. Met de bibliotheek requests
kunt u time-outs specificeren en uitzonderingen opvangen:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
In dit voorbeeld stellen we een time-out in voor de aanvraag en vangen we eventuele uitzonderingen op. Als er iets misgaat, wordt er een foutmelding weergegeven.
Conclusie
De requests
-bibliotheek is een krachtige en gebruiksvriendelijke tool voor het maken van HTTP-verzoeken in Python. Of u nu gegevens ophaalt van API's, formulierinzendingen verstuurt of aangepaste headers verwerkt, de requests
-bibliotheek maakt het eenvoudig om deze taken uit te voeren met slechts een paar regels code. Door de basisbeginselen die in dit artikel worden behandeld onder de knie te krijgen, bent u goed toegerust om te communiceren met webservices en API's in uw Python-projecten.