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.