Перейти к содержанию

Requests

Описание

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


Зачем это нужно

Какие проблемы решает.


Как работает

Requests работает поверх HTTP протокола.

Flow работы выглядит так:

graph LR
A[python code] --> B[requests]
B --> C[HTTP request]
C --> D[server/API]
D --> E[HTTP response]
E --> F[requests object]
F --> G[python code]

Базовое использование

Активировать виртуальное окружение

Инструкцию вы найдете тут: виртуальное окружение

1. Активировать virtualenv

source .venv/bin/activate

2. Установить requests

pip install requests

3. Проверить установку

pip show requests

4. Использовать библиотеку

import requests

5. Первый запрос

import requests
response = requests.get("https://httpbin.org/get")
print(response.status_code)
print(response.text)

Что происходит внутри

Когда выполняется:

requests.get("https://httpbin.org/get")

происходит следующее:

  1. DNS lookup
  2. создание TCP соединения
  3. TLS handshake (если HTTPS)
  4. отправка HTTP GET запроса
  5. ожидание ответа
  6. получение response
  7. преобразование данных в python объект

Основные объекты requests

Response object

response = requests.get("https://httpbin.org/get")

Requests возвращает объект Response.

Полезные поля:

Поле Значение
response.status_code HTTP код ответа
response.text текст ответа
response.json() json response
response.headers HTTP headers
response.content bytes response

Best practices

Использовать timeout f Плохо:

requests.get(url)

Хорошо:

requests.get(url, timeout=5)

Предупреждение

Без timeout приложение может зависнуть навсегда.


Anti-patterns

Как делать НЕ надо.


Типичные ошибки

Реальные production ошибки.


Полезные команды

Шпаргалка.


Итог

Краткое summary.