Python - klient HTTP
W protokole http żądanie od klienta dociera do serwera i pobiera pewne dane i metadane przy założeniu, że jest to prawidłowe żądanie. Możemy przeanalizować tę odpowiedź z serwera za pomocą różnych funkcji dostępnych w module zapytań Pythona. Tutaj poniższe programy w Pythonie działają po stronie klienta i wyświetlają wynik odpowiedzi wysłanej przez serwer.
Uzyskaj wstępną odpowiedź
W poniższym programie metoda get z modułu requestów pobiera dane z serwera i jest drukowana w formacie zwykłego tekstu.
import requests
r = requests.get('https://httpbin.org/')
print(r.text)[:200]
Po uruchomieniu powyższego programu otrzymujemy następujący wynik -
<!DOCTYPE html >
<html lang="en">
<head>
<meta charset="UTF-8">
<title>httpbin.org</title>
<link
href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+
Uzyskaj odpowiedź obiektu sesji
Obiekt Session umożliwia utrwalanie pewnych parametrów w żądaniach. Utrzymuje również pliki cookie we wszystkich żądaniach wysyłanych z wystąpienia sesji. Jeśli wysyłasz kilka żądań do tego samego hosta, podstawowe połączenie TCP zostanie ponownie użyte.
import requests
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/31251425')
r = s.get('http://httpbin.org/cookies')
print(r.text)
Po uruchomieniu powyższego programu otrzymujemy następujący wynik -
{"cookies":{"sessioncookie":"31251425"}}
Błąd obsługi
W przypadku wystąpienia błędu z powodu problemu z przetwarzaniem żądania przez serwer, program w języku Python może z wdziękiem obsłużyć wyjątek zgłoszony za pomocą parametru timeout, jak pokazano poniżej. Program zaczeka na zdefiniowaną wartość błędu przekroczenia czasu, a następnie zgłosi błąd przekroczenia czasu.
requests.get('http://github.com', timeout=10.001)