Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie Python httpx
Httpx ist eine Python-Bibliothek, die einen modernen, benutzerfreundlichen HTTP-Client und -Server bereitstellt. Httpx funktioniert mit dem asynchronen Framework von Python und unterstützt WebSocket und HTTP/2. Httpx bietet hervorragende Leistung, Sicherheit und flexible Konfiguration für eine Vielzahl unterschiedlicher Protokolle, Kodierungen und Authentifizierungsschemata.
Die Installation der Httpx-Bibliothek ist sehr einfach. Führen Sie einfach den folgenden Befehl mit dem Pip-Paketmanager aus:
pip install httpx
Wenn Sie Python 3.7 oder früher verwenden, müssen Sie die asynchrone Abhängigkeit aiohttp von Httpx installieren.
Sie können es installieren, indem Sie den folgenden Befehl ausführen:
pip install httpx[aiohttp]
Das Senden von HTTP-Anfragen mit Httpx ist sehr einfach. Hier ist ein einfaches Beispiel, das Httpx zum Senden einer GET-Anfrage verwendet:
import httpx response = httpx.get('https://www.baidu.com') print(response.status_code) print(response.text)
In diesem Beispiel haben wir eine GET-Anfrage mit der get-Methode von Httpx gesendet. Die angeforderte URL lautet https://www.baidu.com. Diese Methode gibt ein Response-Objekt zurück, mit dem wir auf den Antwortstatuscode und den Antworttext zugreifen können.
Httpx unterstützt viele verschiedene HTTP-Methoden, einschließlich GET, POST, PUT, DELETE, HEAD und OPTIONS. Sie können Httpx-Methoden verwenden, um diese Anfragen zu senden.
Hier sind einige Beispiele:
import httpx response = httpx.post('https://www.baidu.com', data={'key': 'value'}) response = httpx.put('https://www.baidu.com', data={'key': 'value'}) response = httpx.delete('https://www.baidu.com') response = httpx.head('https://www.baidu.com') response = httpx.options('https://www.baidu.com')
Jede der Anfragen in den obigen Beispielen kann mit Httpx-Methoden gesendet werden. Die meisten dieser Methoden unterstützen die Übergabe von Parametern wie Daten, Headern und Abfrageparametern.
Httpx unterstützt auch asynchrone HTTP-Anfragen. Hier ist ein einfaches Beispiel, das Httpx verwendet, um eine asynchrone GET-Anfrage zu senden:
import httpx import asyncio async def get_request(): async with httpx.AsyncClient() as client: response = await client.get('https://www.baidu.com') print(response.status_code) print(response.text) asyncio.run(get_request())
In diesem Beispiel haben wir eine asynchrone Funktion namens get_request erstellt, die die AsyncClient-Klasse von Httpx verwendet, um eine asynchrone GET-Anfrage zu senden. In der asynchronen Funktion verwenden wir die async with-Anweisung, um einen asynchronen Client von Httpx zu erstellen. Wenn Sie den Client auf diese Weise erstellen, wird sichergestellt, dass der Client automatisch geschlossen wird, nachdem die Anforderung abgeschlossen ist. Anschließend verwenden wir das Schlüsselwort „await“, um asynchron auf die Antwort zu warten und auf den Antwortstatuscode und den Antworttext vom Antwortobjekt zuzugreifen.
Ähnlich wie synchrone Anfragen unterstützt auch der asynchrone Client von Httpx viele verschiedene HTTP-Methoden.
Hier einige Beispiele:
import httpx import asyncio async def post_request(): async with httpx.AsyncClient() as client: response = await client.post('https://www.baidu.com', data={'key': 'value'}) print(response.status_code) print(response.text) asyncio.run(post_request())
Beim Senden einer HTTP-Anfrage müssen Sie normalerweise Anforderungsheader festlegen. Mit Httpx können Sie Anforderungsheader festlegen, indem Sie den Header-Parameter in der Anforderungsmethode übergeben.
Hier ist ein Beispiel:
import httpx headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = httpx.get('https://www.baidu.com', headers=headers) print(response.status_code) print(response.text)
In diesem Beispiel legen wir mithilfe des Headers-Parameters einen Anforderungsheader namens User-Agent fest.
Mit Httpx können Sie beim Senden von HTTP-Anfragen Anforderungsparameter festlegen.
Hier sind einige Beispiele:
import httpx params = {'key1': 'value1', 'key2': 'value2'} response = httpx.get('https://www.baidu.com', params=params) print(response.status_code) print(response.text)
In diesem Beispiel legen wir zwei Abfrageparameter key1 und key2 mithilfe des Parameters params fest.
Beim Senden von POST-, PUT- und DELETE-Anfragen müssen Sie normalerweise Daten in den Anfragetext aufnehmen. Mit Httpx können Sie mithilfe des Datenparameters Daten im Anforderungstext festlegen.
Hier ist ein Beispiel:
import httpx data = {'key': 'value'} response = httpx.post('https://www.baidu.com', data=data) print(response.status_code) print(response.text)
In diesem Beispiel legen wir mithilfe des Datenparameters einen Anforderungstextparameter namens „key“ fest.
Mit Httpx können Sie JSON-Daten mithilfe des JSON-Parameters senden.
Hier ist ein Beispiel:
import httpx data = {'key': 'value'} response = httpx.post('https://www.baidu.com', json=data) print(response.status_code) print(response.text)
In diesem Beispiel legen wir mithilfe des JSON-Parameters einen JSON-Anforderungskörperparameter namens „key“ fest.
Beim Senden von HTTP-Anfragen müssen Sie normalerweise ein Timeout festlegen. Mit Httpx können Sie mithilfe des Timeout-Parameters ein Timeout festlegen.
Hier ist ein Beispiel:
import httpx response = httpx.get('https://www.baidu.com', timeout=5) print(response.status_code) print(response.text)
In diesem Beispiel legen wir mithilfe des Timeout-Parameters ein Timeout von 5 Sekunden fest.
Httpx kann verschiedene Arten von Ausnahmen auslösen, um Ihnen bei der Diagnose und Lösung von Problemen zu helfen. Hier sind einige häufige Ausnahmen:
httpx.HTTPError: Wird ausgelöst, wenn ein HTTP-Fehler auftritt.
httpx.RequestError: Wird ausgelöst, wenn ein Anforderungsfehler auftritt.
httpx.NetworkError: Wird ausgelöst, wenn ein Netzwerkfehler auftritt.
httpx.TimeoutException: Wird ausgelöst, wenn eine Zeitüberschreitung auftritt.
Bei der Behandlung dieser Ausnahmen können Sie try/exclusive-Anweisungen verwenden, um die Ausnahme abzufangen und entsprechende Maßnahmen zu ergreifen. Hier ist ein Beispiel:
import httpx try: response = httpx.get('https://www.baidu.com') response.raise_for_status() except httpx.HTTPError as http_error: print(f'HTTP error occurred: {http_error}') except httpx.RequestError as request_error: print(f'Request error occurred: {request_error}') except httpx.NetworkError as network_error: print(f'Network error occurred: {network_error}') except httpx.TimeoutException as timeout_error: print(f'Timeout error occurred: {timeout_error}') else: print(response.status_code) print(response.text)
In diesem Beispiel haben wir alle möglichen Ausnahmen mithilfe von try/exclusive-Anweisungen abgefangen und basierend auf dem Ausnahmetyp entsprechende Maßnahmen ergriffen.
Httpx ermöglicht Ihnen die Überprüfung Ihres SSL-Zertifikats, um eine sichere Verbindung zu Ihrem Server zu gewährleisten. Standardmäßig überprüft Httpx SSL-Zertifikate. Wenn Sie die Zertifikatsüberprüfung deaktivieren müssen, können Sie den Überprüfungsparameter auf „Falsch“ setzen.
Hier ist ein Beispiel:
import httpx response = httpx.get('https://www.baidu.com', verify=False) print(response.status_code) print(response.text)
In diesem Beispiel setzen wir den Verifizierungsparameter auf „False“, um die SSL-Zertifikatsüberprüfung zu deaktivieren.
Httpx ermöglicht Ihnen die Verwendung eines Proxys zum Senden von HTTP-Anfragen. Hier ist ein Beispiel:
import httpx proxies = { 'http://http-proxy-server:8080', 'https://https-proxy-server:8080' } response = httpx.get('https://www.baidu.com', proxies=proxies) print(response.status_code) print(response.text)
In diesem Beispiel haben wir zwei Proxyserver mithilfe des Proxys-Parameters eingerichtet.
Mit Httpx können Sie Dateien mithilfe des Dateiparameters hochladen. Hier ist ein Beispiel:
import httpx files = {'file': ('file.txt', open('file.txt', 'rb'))} response = httpx.post('https://www.baidu.com', files=files) print(response.status_code) print(response.text)
在这个示例中,我们使用 files 参数上传了名为 file.txt 的文件。
Httpx 允许您使用 cookies 参数发送 cookie。以下是一个示例:
import httpx cookies = {'name': 'value'} response = httpx.get('https://www.baidu.com', cookies=cookies) print(response.status_code) print(response.text)
在这个示例中,我们使用 cookies 参数发送了名为 name 的 cookie。
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python httpx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!