Py Requests – Jak skutecznie wysyłać zapytania HTTP w Pythonie
Jeśli jesteś programistą, który spędza czas na budowaniu aplikacji internetowych, to na pewno spotkałeś się z potrzebą komunikacji z różnymi usługami internetowymi. W tym celu Python oferuje bardzo wygodną bibliotekę – Py Requests. Dzięki niej, możesz łatwo wysyłać zapytania HTTP i obsługiwać odpowiedzi, co sprawia, że integracja z innymi serwisami jest szybka i prosta. W tym artykule pokażę Ci, jak korzystać z biblioteki Py Requests, przedstawię jej możliwości oraz zaprezentuję praktyczne przykłady.
Czym jest Py Requests?
Py Requests to jedna z najczęściej wykorzystywanych bibliotek w Pythonie, służąca do wysyłania zapytań HTTP (GET, POST, PUT, DELETE itp.). Dzięki niej, komunikacja z serwisami internetowymi staje się prostsza, bardziej przejrzysta i efektywna. Requests abstrahuje wszystkie skomplikowane detale związane z wysyłaniem zapytań HTTP, oferując programiście czytelny i intuicyjny interfejs. Biblioteka ta jest bardzo popularna, dlatego znajdziesz ogromną ilość dokumentacji oraz przykładów, co ułatwia naukę i rozwiązywanie problemów.
Jak zainstalować Py Requests?
Na szczęście instalacja biblioteki Requests jest dziecinnie prosta! Wystarczy, że masz zainstalowanego Pythona i narzędzie pip do zarządzania pakietami. Oto jak to zrobić:
pip install requests
To wszystko! Po tej komendzie biblioteka Py Requests jest gotowa do użycia w Twoim projekcie.
Podstawowe operacje w Py Requests – przykłady
W Py Requests najczęściej będziesz używać kilku typów zapytań HTTP. Oto podstawowe z nich:
1. Zapytanie GET – pobieranie danych
Zapytanie GET jest najczęściej wykorzystywane do pobierania danych z serwisów internetowych. Przykładowo, jeśli chcesz pobrać zawartość strony internetowej, użyjesz tego typu zapytania:
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # Sprawdzamy status odpowiedzi
print(response.text) # Wyświetlamy treść odpowiedzi
W powyższym przykładzie wysyłamy zapytanie GET do GitHub API. Odpowiedź jest przechowywana w obiekcie response, a my możemy sprawdzić jej kod statusu (np. 200 oznacza, że zapytanie zakończyło się sukcesem) oraz treść odpowiedzi (tutaj HTML lub JSON, w zależności od serwisu).
2. Zapytanie POST – wysyłanie danych
Zapytanie POST jest używane, gdy chcemy wysłać dane do serwera. Często stosowane w formularzach, API czy logowaniu. Oto przykład:
import requests
data = {
'username': 'my_user',
'password': 'my_password'
}
response = requests.post('https://example.com/login', data=data)
print(response.status_code)
print(response.text)
W tym przypadku wysyłamy dane do serwera w formie słownika Pythonowego (klucz-wartość). Zapytanie POST jest szeroko wykorzystywane w przypadku logowania lub rejestracji użytkowników na stronach internetowych.
3. Zapytanie PUT – aktualizacja danych
Zapytanie PUT jest używane do modyfikacji danych na serwerze. W odróżnieniu od POST, PUT zazwyczaj ma na celu pełną aktualizację zasobów:
import requests
data = {
'name': 'Nowa nazwa produktu',
'price': 150.00
}
response = requests.put('https://api.example.com/product/123', data=data)
print(response.status_code)
W powyższym przykładzie wysyłamy zapytanie PUT, które zmienia dane produktu na serwerze. Identyfikator produktu to 123, a dane do zaktualizowania to nazwa i cena.
4. Zapytanie DELETE – usuwanie danych
Zapytanie DELETE jest używane do usuwania zasobów na serwerze. Przykład:
import requests
response = requests.delete('https://api.example.com/product/123')
print(response.status_code)
W tym przypadku wysyłamy zapytanie DELETE, aby usunąć produkt o identyfikatorze 123.
Obsługa odpowiedzi w Py Requests
Po wysłaniu zapytania HTTP, serwer zwraca odpowiedź, którą możemy obsłużyć. Py Requests daje nam możliwość łatwego sprawdzania statusu odpowiedzi, nagłówków oraz treści. Oto kilka ważnych funkcji:
- response.status_code: Zwraca kod statusu HTTP, np. 200, 404, 500.
- response.text: Zwraca treść odpowiedzi w postaci tekstowej (np. HTML, JSON).
- response.json(): Używane do parsowania odpowiedzi w formacie JSON (jeśli serwer zwróci dane w tym formacie).
- response.headers: Zwraca nagłówki odpowiedzi (np. typ zawartości, długość).
Przykład obsługi odpowiedzi
Załóżmy, że wysyłamy zapytanie GET do serwera, który zwraca dane w formacie JSON. Oto, jak możemy obsłużyć odpowiedź:
import requests
response = requests.get('https://api.example.com/data')
if response.status_code == 200:
data = response.json()
print(data)
else:
print('Błąd:', response.status_code)
W tym przypadku, jeśli odpowiedź ma status 200 (sukces), przetwarzamy dane JSON. Jeśli odpowiedź jest inna, wyświetlamy kod błędu.
Wysyłanie zapytań z parametrami i nagłówkami
Czasami w zapytaniach musimy wysłać dodatkowe parametry lub nagłówki, na przykład, jeśli API wymaga tokena autoryzacyjnego. Oto przykład:
import requests
headers = {
'Authorization': 'Bearer token_api'
}
params = {
'page': 1,
'limit': 10
}
response = requests.get('https://api.example.com/items', headers=headers, params=params)
print(response.status_code)
print(response.json())
W tym przykładzie wysyłamy zapytanie GET, dodając nagłówek z tokenem autoryzacyjnym oraz parametry zapytania (strona i limit wyników).
Py Requests przykłady – najlepsze praktyki
Aby Twoje zapytania HTTP były bezpieczne i wydajne, warto przestrzegać kilku podstawowych zasad:
- Używaj sesji (Session): Jeśli wykonujesz wiele zapytań do tego samego serwera, użycie obiektu
requests.Session()pozwala na utrzymanie połączenia i oszczędność zasobów. - Sprawdzaj status odpowiedzi: Zawsze sprawdzaj kod statusu odpowiedzi, aby upewnić się, że zapytanie zakończyło się sukcesem.
- Używaj try-except: Zawsze otaczaj zapytania blokiem
try-except, aby obsługiwać błędy, takie jak problemy z połączeniem czy timeout.
Podsumowanie
Py Requests to potężna biblioteka, która pozwala w prosty sposób wysyłać zapytania HTTP w Pythonie. Dzięki niej, komunikacja z API, zewnętrznymi usługami i serwisami internetowymi staje się łatwiejsza i bardziej intuicyjna. W tym artykule przedstawiliśmy podstawowe operacje, takie jak zapytania GET, POST, PUT i DELETE, a także pokazaliśmy, jak obsługiwać odpowiedzi z serwera. Mam nadzieję, że ten przewodnik ułatwi Ci pracę z zapytaniami HTTP i pomoże w tworzeniu bardziej zaawansowanych aplikacji. Nie bój się eksperymentować z Requests – Python i ta biblioteka mają naprawdę ogromne możliwości!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!