Jak korzystać z biblioteki Requests języka Python dla protokołu HTTP
Biblioteka requests
to popularny moduł Pythona, który upraszcza proces tworzenia żądań HTTP. Abstrahuje złożoność obsługi żądań i odpowiedzi, ułatwiając interakcję z usługami sieciowymi i interfejsami API. W tym artykule przyjrzymy się podstawom korzystania z biblioteki requests
, w tym sposobom wysyłania różnych typów żądań HTTP i obsługi odpowiedzi.
Instalowanie biblioteki żądań
Zanim będziesz mógł używać biblioteki requests
, musisz ją zainstalować. Możesz ją zainstalować za pomocą pip
, menedżera pakietów Pythona. Uruchom następujące polecenie w swoim terminalu:
pip install requests
Tworzenie prostego żądania GET
Najbardziej podstawowym żądaniem HTTP jest żądanie GET, które pobiera dane z serwera. Oto jak możesz użyć biblioteki requests
, aby utworzyć żądanie GET:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
W tym przykładzie wysyłamy żądanie GET do interfejsu API GitHub i drukujemy kod statusu HTTP oraz zawartość odpowiedzi w formacie JSON.
Wysyłanie żądań POST
Żądania POST służą do wysyłania danych do serwera, takich jak zgłoszenia formularzy. Oto jak wysłać żądanie POST za pomocą biblioteki requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
W tym przykładzie wysyłamy żądanie POST z danymi formularza do usługi testowej httpbin.org i drukujemy kod statusu odpowiedzi oraz treść.
Obsługa parametrów zapytania
Czasami musisz uwzględnić parametry zapytania w swoich żądaniach. Biblioteka requests
ułatwia to, pozwalając na przekazywanie parametrów jako słownika:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
W tym przykładzie uwzględniamy parametry zapytania w żądaniu GET i drukujemy końcowy adres URL z uwzględnionymi parametrami.
Praca z nagłówkami
Może być konieczne uwzględnienie niestandardowych nagłówków w żądaniach, na przykład w celu uwierzytelnienia lub określenia typów treści. Oto jak dodać nagłówki do żądań:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
W tym przykładzie dołączamy nagłówek autoryzacji do żądania do interfejsu API GitHub i drukujemy kod statusu oraz treść odpowiedzi.
Obsługa przekroczeń limitu czasu i wyjątków
Ważne jest, aby obsługiwać potencjalne problemy, takie jak limity czasu sieci i inne wyjątki. Biblioteka requests
umożliwia określanie limitów czasu i wychwytywanie wyjątków:
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}')
W tym przykładzie ustawiamy limit czasu dla żądania i wychwytujemy wszystkie występujące wyjątki, wyświetlając komunikat o błędzie, jeśli coś pójdzie nie tak.
Wniosek
Biblioteka requests
to potężne i przyjazne użytkownikowi narzędzie do wykonywania żądań HTTP w Pythonie. Niezależnie od tego, czy pobierasz dane z interfejsów API, wysyłasz zgłoszenia formularzy, czy obsługujesz niestandardowe nagłówki, biblioteka requests
ułatwia wykonywanie tych zadań za pomocą zaledwie kilku linijek kodu. Opanowanie podstaw omówionych w tym artykule pozwoli Ci dobrze przygotować się do interakcji z usługami sieciowymi i interfejsami API w Twoich projektach Pythona.