Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie Python httpx

So verwenden Sie Python httpx

WBOY
WBOYnach vorne
2023-04-18 23:43:033037Durchsuche

Was ist 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.

Httpx installieren

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]

HTTP-Anfragen senden

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.

Asynchrone HTTP-Anfragen senden

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())

Anforderungsheader festlegen

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.

Anfrageparameter festlegen

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.

Senden Sie den Anfragetext

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.

JSON-Daten senden

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.

Timeout festlegen

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.

Fehlerbehandlung

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.

Zertifikatsüberprüfung

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.

Verwenden Sie einen Proxy

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.

Dateien hochladen

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 的文件。

使用 Cookie

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen