- Co to są żądania Pythona?
- Dlaczego warto korzystać z żądań Pythona?
- Jak zainstalować żądania Pythona?
- Dokonywanie żądań pobierania i wysyłania
- Przekazywanie parametrów w adresie URL
- Kod statusu
- Treść odpowiedzi
- Wieloczęściowe przesyłanie plików
- Pliki cookie i nagłówki
- Obiekt sesji
- Błędy i wyjątki
Co to są żądania Pythona?
Żądania Pythona zostały napisane przez Kennetha Reitza i licencjonowane w ramach Apache 2.0. Jest to przyjazna dla człowieka biblioteka HTTP, o czym wspomniano na oficjalnej stronie dokumentacji. Jest łatwy w użyciu i zasadniczo służy do wykonywania wszelkiego rodzaju żądań HTTP. Poniżej znajduje się kilka zaawansowanych funkcji, które zawiera żądania:
- Utrzymuj aktywność i pule połączeń
- Międzynarodowe domeny i adresy URL
- Sesje z trwałością plików cookie
- Weryfikacja SSL w stylu przeglądarki
- Automatyczne dekodowanie treści
- Uwierzytelnianie podstawowe / skrócone
- Eleganckie pliki cookie typu klucz / wartość
- Automatyczna dekompresja
- Treści odpowiedzi Unicode
- Obsługa proxy HTTPs
- Przesyłanie plików w wielu częściach
- Pobieranie strumieniowe
- Limity czasu połączenia
- Żądania podzielone na fragmenty
Dlaczego warto korzystać z żądań Pythona?
Jeśli chodzi o to, dlaczego używamy żądań Pythona? powód jest całkiem prosty. Korzystając z żądań Pythona, nie musisz ręcznie dodawać zapytań do swoich adresów URL i danych postów z kodowaniem formularza. Ułatwia nam to pracę podczas wykonywania wszelkiego rodzaju żądań http.Teraz, gdy już znamy żądania w Pythonie i dlaczego używamy ich w Pythonie, spróbujmy zrozumieć, w jaki sposób zamierzamy zainstalować żądania w naszym projekcie lub systemie.Jak zainstalować żądania Pythona?
Część instalacyjna jest również bardzo łatwa. Jeśli masz zainstalowaną konfigurację pipenv w swoim systemie, możesz po prostu uruchomić następujące polecenie w terminalu.Żądania instalacji $ pip
dziesiętny do binarnego kodu PythonaSpowoduje to zainstalowanie biblioteki żądań w twoim systemie. Istnieje jeszcze jedno podejście do żądań instalacji. Jeśli używasz pycharm, możesz dodać żądania do interpretera projektu w ustawieniach. Służy temu samemu celowi co terminal w przypadku instalacji biblioteki na naszym projekcie.Teraz, gdy zakończyliśmy instalację, spróbujmy zrozumieć, w jaki sposób będziemy wykonywać żądania pobierania i wysyłania w Pythonie.
Jak tworzyć i wysyłać żądania?
Żądanie Get służy w zasadzie do żądania danych z serwera. Poniżej przedstawiono składnię żądania pobrania.import request res = request.get ('url') #res jest tutaj obiektem odpowiedzi.Żądanie postu służy do przesłania danych do przetworzenia na serwer. Poniżej znajduje się składnia żądania wiadomości.
import żądań payload = {'key1': 'value1'} res = request.post ('url', data = payload)Teraz, gdy wiemy, jak możemy wysyłać i wysyłać żądania, przyjrzyjmy się, jak możemy przekazywać parametry do adresu URL za pomocą żądania get.
Przekazywanie parametrów w adresie URL
Przekazywanie parametrów w adresie URL jest tak proste, jak wysłanie żądania pobrania. Poniżej znajduje się przykład przekazywania parametrów do adresu URL.import żądań payload = {'klucz1': 'wartość1', 'klucz2': 'wartość2'} res = requests.get ('url', params = payload) print (res.url) # to wydrukuje adres URL z parametrami przeszedł przez żądanie pobierania.
Kod statusu
Możemy również sprawdzić kod statusu, poniżej znajduje się kod do sprawdzenia kodu statusu:
import żądań res = request.get ('url') print (res.status_code ())Jeśli kod zwraca 200, oznacza to, że nie ma błędu i żądanie jest w porządku. Jeśli wykonamy złe żądanie, kod zwróci kod, taki jak 404 lub 505, co spowoduje błąd http.
Treść odpowiedzi
Możemy również odczytać treść odpowiedzi serwera. Biblioteka automatycznie zdekoduje zawartość z serwera.import żądań res = request.get ('url') print (res.content)
Żądania mają również wbudowany dekoder json.
import request res = request.get ('url') print (res.json ()) # otrzyma odpowiedź w formacie json
Przesyłanie plików wieloczęściowych
Przesyłanie plików wieloczęściowych za pomocą żądań jest bardzo łatwe.import request files = {'file': open ('filename', 'rb')} res = request.post ('url', files = files) print (res.text)W przypadku wysyłania wielu plików określimy wiele plików w parametrze files.
Pliki cookie i nagłówki
Możemy przeglądać nagłówki odpowiedzi i pliki cookie serwera za pomocą obiektu odpowiedzi. Poniżej znajduje się kod umożliwiający wyświetlenie nagłówków serwera.import żądań res = request.get ('url') print (res.headers)Możemy również przekazywać niestandardowe nagłówki do adresu URL. Spójrzmy na kod.
import żądań nagłówków = {'klucz1': 'wartość1'} res = request.get ('url', headers = headers) print (res.headers)Żądania nie zmieniają swojego zachowania na podstawie niestandardowych nagłówków. Są po prostu przekazywane do ostatecznego wniosku. cookies można również wyświetlić za pomocą obiektu odpowiedzi.
żądania importu # do przekazywania własnych plików cookie możemy użyć parametru plików cookie cookies = dict (cookies = 'working') res = request.get ('url', cookies = cookies) print (res.text)
Pliki cookie są zwracane w RequestCookieJar, który działa jak słownik, ale oferuje również bardziej kompletny interfejs, odpowiedni do użytku w wielu domenach lub ścieżkach.
Obiekt sesji
Obiekt sesji umożliwia utrwalanie pewnych parametrów w żądaniach.- Utrzymuje pliki cookie we wszystkich żądaniach wysyłanych z instancji sesji
- Użyj puli połączeń urllib3
- Znaczący wzrost wydajności
- Obiekt sesji ma wszystkie metody głównego interfejsu API żądań
s = request.session () s.get ('url') res = s.get ('url') print (res.text)
Błędy i wyjątki
Poniżej znajdują się błędy i wyjątki, które są zgłaszane w żądaniu Pythona.- W przypadku problemu z siecią żądania spowodują zgłoszenie wyjątku ConnectionError.
- Response.raise_for_status () zgłosi błąd HTTP, gdy wystąpi niepomyślny kod stanu.
- Jeśli wystąpi limit czasu, zgłosi wyjątek Timeout
- Wyjątek TooManyRedirects jest zgłaszany, jeśli żądanie przekracza skonfigurowaną liczbę maksymalnej liczby przekierowań.