Sådan bruges Pythons anmodningsbibliotek til HTTP
requests
-biblioteket er et populært Python-modul, der forenkler processen med at lave HTTP-anmodninger. Det abstraherer kompleksiteten af at håndtere anmodninger og svar, hvilket gør det nemmere at interagere med webtjenester og API'er. I denne artikel vil vi udforske det grundlæggende i brugen af requests
-biblioteket, herunder hvordan man sender forskellige typer HTTP-anmodninger og håndterer svar.
Installation af anmodningsbiblioteket
Før du kan bruge requests
biblioteket, skal du installere det. Du kan installere det ved hjælp af pip
, Python-pakkehåndteringen. Kør følgende kommando i din terminal:
pip install requests
Lav en simpel GET-anmodning
Den mest basale HTTP-anmodning er en GET-anmodning, som henter data fra en server. Sådan kan du bruge requests
-biblioteket til at lave en GET-anmodning:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
I dette eksempel sender vi en GET-anmodning til GitHub API og udskriver HTTP-statuskoden og svarindholdet i JSON-format.
Sender POST-anmodninger
POST-anmodninger bruges til at sende data til en server, såsom formularindsendelser. Sådan sender du en POST-anmodning med requests
-biblioteket:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
I dette eksempel sender vi en POST-anmodning med nogle formulardata til httpbin.org-testtjenesten og udskriver svarstatuskoden og indholdet.
Håndtering af forespørgselsparametre
Nogle gange skal du inkludere forespørgselsparametre i dine anmodninger. requests
-biblioteket gør dette nemt ved at tillade dig at sende parametre som en ordbog:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
I dette eksempel inkluderer vi forespørgselsparametre i en GET-anmodning og udskriver den endelige URL med parametrene inkluderet.
Arbejde med overskrifter
Du skal muligvis inkludere tilpassede overskrifter i dine anmodninger, f.eks. til godkendelse eller for at angive indholdstyper. Sådan tilføjer du overskrifter til dine anmodninger:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
I dette eksempel inkluderer vi en autorisationsheader i anmodningen til GitHub API og udskriver statuskoden og svarindholdet.
Håndtering af timeouts og undtagelser
Det er vigtigt at håndtere potentielle problemer såsom netværkstimeouts og andre undtagelser. requests
-biblioteket giver dig mulighed for at angive timeouts og fange undtagelser:
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}')
I dette eksempel sætter vi en timeout for anmodningen og fanger eventuelle undtagelser, der opstår, og udskriver en fejlmeddelelse, hvis noget går galt.
Konklusion
requests
-biblioteket er et kraftfuldt og brugervenligt værktøj til at lave HTTP-anmodninger i Python. Uanset om du henter data fra API'er, sender formularindsendelser eller håndterer brugerdefinerede headers, gør requests
-biblioteket det nemt at udføre disse opgaver med blot et par linjer kode. Ved at mestre det grundlæggende, der er dækket i denne artikel, vil du være godt rustet til at interagere med webtjenester og API'er i dine Python-projekter.