Hur man använder Pythons begärandebibliotek för HTTP
requests
-biblioteket är en populär Python-modul som förenklar processen att göra HTTP-förfrågningar. Det abstraherar bort komplexiteten i att hantera förfrågningar och svar, vilket gör det lättare att interagera med webbtjänster och API:er. I den här artikeln kommer vi att utforska grunderna för att använda requests
-biblioteket, inklusive hur man skickar olika typer av HTTP-förfrågningar och hanterar svar.
Installera Request Library
Innan du kan använda requests
-biblioteket måste du installera det. Du kan installera det med pip
, Python-pakethanteraren. Kör följande kommando i din terminal:
pip install requests
Gör en enkel GET-förfrågan
Den mest grundläggande HTTP-förfrågan är en GET-förfrågan, som hämtar data från en server. Så här kan du använda requests
-biblioteket för att göra en GET-förfrågan:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
I det här exemplet skickar vi en GET-förfrågan till GitHub API och skriver ut HTTP-statuskoden och svarsinnehållet i JSON-format.
Skickar POST-förfrågningar
POST-förfrågningar används för att skicka data till en server, till exempel formulärinlämningar. Så här skickar du en POST-förfrågan med requests
-biblioteket:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
I det här exemplet skickar vi en POST-förfrågan med vissa formulärdata till testtjänsten httpbin.org och skriver ut svarsstatuskoden och innehållet.
Hantera frågeparametrar
Ibland behöver du inkludera frågeparametrar i dina förfrågningar. requests
-biblioteket gör detta enkelt genom att låta dig skicka parametrar som en ordbok:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
I det här exemplet inkluderar vi frågeparametrar i en GET-begäran och skriver ut den slutliga webbadressen med parametrarna inkluderade.
Arbeta med rubriker
Du kan behöva inkludera anpassade rubriker i dina förfrågningar, till exempel för autentisering eller för att ange innehållstyper. Så här lägger du till rubriker i dina förfrågningar:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
I det här exemplet inkluderar vi en auktoriseringshuvud i begäran till GitHub API och skriver ut statuskoden och svarsinnehållet.
Hantera timeouts och undantag
Det är viktigt att hantera potentiella problem som nätverkstimeout och andra undantag. requests
-biblioteket låter dig ange timeouts och fånga undantag:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
I det här exemplet ställer vi in en timeout för begäran och fångar upp eventuella undantag som uppstår och skriver ut ett felmeddelande om något går fel.
Slutsats
requests
-biblioteket är ett kraftfullt och användarvänligt verktyg för att göra HTTP-förfrågningar i Python. Oavsett om du hämtar data från API:er, skickar formulärinlämningar eller hanterar anpassade rubriker, gör requests
-biblioteket det enkelt att utföra dessa uppgifter med bara några rader kod. Genom att behärska grunderna i den här artikeln kommer du att vara väl rustad att interagera med webbtjänster och API:er i dina Python-projekt.