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.