Найти в Дзене
sunNinja

Работа с ответами в библиотеке requests в Python

Оглавление

Работа с ответами является важной частью взаимодействия с веб-сервисами, и библиотека requests предоставляет удобные средства для обработки ответов от серверов. В этой статье мы рассмотрим, как обрабатывать ответы, проверять успешность запросов и обрабатывать возможные ошибки.

Предидуюшие статьи на эту тему:

Мой телеграм

Работа с ответами в библиотеке requests в Python
Работа с ответами в библиотеке requests в Python

1. Обработка ответов

После отправки HTTP-запроса с помощью библиотеки requests, сервер отправляет ответ, который доступен через объект Response. Этот объект содержит информацию о статусе запроса, теле ответа и другие полезные данные.

Пример отправки запроса и получения ответа:

Пример отправки запроса и получения ответа
Пример отправки запроса и получения ответа

Что можно извлечь из объекта response?

  • status_code: Код состояния HTTP-ответа, например, 200 для успешного запроса.
  • text: Тело ответа в виде строки (может быть HTML, JSON и т.д.).
  • json(): Преобразует тело ответа в формат JSON (если это возможно).
  • headers: Заголовки ответа.
  • cookies: Куки, если они присутствуют в ответе.
  • url: URL-адрес, по которому был отправлен запрос.

Пример вывода:

Пример вывода
Пример вывода

2. Проверка успешности запроса

Для проверки, был ли запрос успешным, можно использовать код состояния ответа, который возвращается сервером. Обычно, если код состояния начинается с 2xx, запрос прошел успешно.

  • 200 OK — успешный запрос.
  • 201 Created — ресурс был успешно создан.
  • 400 Bad Request — ошибка запроса на сервере.
  • 404 Not Found — ресурс не найден.

В библиотеке requests есть несколько удобных методов, чтобы проверить успешность запроса:

Проверка через status_code:

Проверка через status_code
Проверка через status_code

Использование response.ok:

Библиотека requests предоставляет атрибут ok, который возвращает True, если код состояния ответа указывает на успешный запрос (коды от 200 до 299):

Использование response.ok
Использование response.ok

3. Обработка ошибок

Во время работы с HTTP-запросами могут возникать ошибки, такие как проблемы с сетью, недоступность сервера или неправильные URL-адреса. Библиотека requests позволяет легко обрабатывать такие ошибки с помощью исключений.

Ошибки сети и HTTP:

Когда запрос не может быть выполнен (например, сервер не доступен), будет выброшено исключение. Для обработки этих исключений можно использовать блоки try/except.

Пример обработки ошибок:

Пример обработки ошибок
Пример обработки ошибок
  • HTTPError: Ошибка, связанная с кодом ответа сервера (например, 404 или 500).
  • Timeout: Ошибка, если запрос занял слишком много времени.
  • RequestException: Общая ошибка, которая возникает при проблемах с сетевым соединением, например, если сервер недоступен.

4. Проверка наличия данных в ответе

Иногда вам нужно убедиться, что сервер вернул данные в ответе, и корректно обработать отсутствие этих данных. Например, если сервер возвращает пустой список или ошибку, вы можете обработать это соответствующим образом.

Проверка наличия данных в ответе
Проверка наличия данных в ответе

Заключение

Работа с ответами в библиотеке requests — это важный аспект взаимодействия с веб-сервисами. Мы рассмотрели, как извлекать данные из ответа, проверять успешность запросов с помощью кодов состояния и обрабатывать возможные ошибки. Использование исключений позволяет безопасно работать с запросами и ловить различные проблемы, такие как ошибки сети или неверные URL.

Правильная обработка ответов и ошибок — это ключевой момент в создании стабильных и надежных приложений, которые взаимодействуют с веб-ресурсами.