Як використовувати бібліотеку запитів Python для HTTP

Бібліотека requests ​​— це популярний модуль Python, який спрощує процес створення HTTP-запитів. Це абстрагує складність обробки запитів і відповідей, полегшуючи взаємодію з веб-службами та API. У цій статті ми розглянемо основи використання бібліотеки requests, зокрема те, як надсилати різні типи HTTP-запитів і обробляти відповіді.

Встановлення бібліотеки запитів

Перш ніж ви зможете використовувати бібліотеку requests, її потрібно встановити. Ви можете встановити його за допомогою pip, менеджера пакетів Python. Виконайте таку команду у вашому терміналі:

pip install requests

Створення простого запиту GET

Найпростішим HTTP-запитом є GET-запит, який отримує дані з сервера. Ось як ви можете використовувати бібліотеку requests, щоб зробити запит GET:

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

У цьому прикладі ми надсилаємо запит GET до API GitHub і друкуємо код статусу HTTP та вміст відповіді у форматі JSON.

Надсилання запитів POST

Запити POST використовуються для надсилання даних на сервер, наприклад для надсилання форм. Ось як надіслати запит POST за допомогою бібліотеки requests:

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

У цьому прикладі ми надсилаємо запит POST із деякими даними форми до служби тестування httpbin.org і друкуємо код статусу відповіді та вміст.

Обробка параметрів запиту

Іноді вам потрібно включити параметри запиту у ваші запити. Бібліотека requests ​​полегшує це, дозволяючи передавати параметри як словник:

import requests

params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)

У цьому прикладі ми включаємо параметри запиту в запит GET і друкуємо кінцеву URL-адресу з включеними параметрами.

Робота з заголовками

Можливо, вам знадобиться включити спеціальні заголовки у ваші запити, наприклад для автентифікації або вказати типи вмісту. Ось як додати заголовки до своїх запитів:

import requests

headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())

У цьому прикладі ми включаємо заголовок авторизації в запит до API GitHub і друкуємо код статусу та вміст відповіді.

Обробка тайм-аутів і винятків

Важливо вирішувати потенційні проблеми, такі як тайм-аут мережі та інші винятки. Бібліотека requests ​​дозволяє вказувати тайм-аути та перехоплювати винятки:

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}')

У цьому прикладі ми встановлюємо тайм-аут для запиту та перехоплюємо будь-які винятки, що виникають, друкуючи повідомлення про помилку, якщо щось піде не так.

Висновок

Бібліотека requests ​​— це потужний і зручний інструмент для створення HTTP-запитів у Python. Бібліотека requests ​​спрощує виконання цих завдань за допомогою лише кількох рядків коду, якщо ви отримуєте дані з API, надсилаєте форму або обробляєте спеціальні заголовки. Опанувавши основи, описані в цій статті, ви будете добре підготовлені для взаємодії з веб-службами та API у ваших проектах Python.