requests.Response

Объект requests.Response() представляет собой ответ, полученный от сервера после отправки HTTP-запроса с помощью библиотеки Requests. Помимо базовых свойств, объект Response содержит множество атрибутов и методов, позволяющих гибко управлять полученными данными. Ниже приведены подробные описания каждого метода и свойства.

Свойства и методы

apparent_encoding — Возвращает предполагаемую кодировку содержимого, определённую с помощью библиотеки chardet. Это особенно полезно, когда сервер не указывает явную кодировку или указывает её неверно. Данное значение может использоваться для корректного декодирования свойства text. При работе с неструктурированными текстовыми данными, где заголовок не предоставляет информации о кодировке.

close() — Закрывает соединение с сервером и освобождает все связанные с ним ресурсы. Рекомендуется вызывать этот метод, если не используется конструкция with (контекстный менеджер), особенно при работе с потоковыми ответами, чтобы избежать утечек памяти и блокировки сокетов. При использовании конструкции with соединение закрывается автоматически.

content — Возвращает тело ответа в виде байтов (bytes). Это свойство используется для получения "сырых" данных, например, при скачивании изображений, файлов или работы с бинарными протоколами. Используйте content, когда необходимо сохранить данные на диск без предварительного декодирования.

cookies — Возвращает объект RequestsCookieJar, содержащий куки, полученные от сервера. Этот объект позволяет не только просматривать куки, но и управлять ими, передавая их между запросами для поддержки сессий. Работает как словарь, но предоставляет дополнительные методы для работы с куками.

elapsed — Возвращает объект datetime.timedelta, представляющий время, прошедшее между отправкой запроса и получением ответа. Это значение полезно для измерения задержек и анализа производительности сети. Логирование времени выполнения запроса для выявления медленных соединений.

encoding — Возвращает или позволяет установить кодировку, которая используется для декодирования текста ответа (атрибут text). Если сервер не указывает кодировку, Requests пытается определить её автоматически. Если известно, что кодировка неверно определена автоматически, можно вручную установить значение r.encoding.

headers — Возвращает словарь заголовков HTTP-ответа. Этот словарь нечувствителен к регистру, что упрощает доступ к конкретным заголовкам, таким как Content-Type или Content-Length. Позволяет быстро получить метаинформацию о полученном ответе.

history — Возвращает список объектов Response, представляющих всю цепочку перенаправлений, если таковые имели место. Первый элемент – первоначальный ответ, а последний – конечный. Позволяет отследить, через какие URL происходило перенаправление, что полезно при работе с API и при отладке.

is_permanent_redirect — Возвращает True, если ответ представляет собой постоянное перенаправление (например, статус 301 или 308), и False в противном случае. Полезно для определения необходимости обновления кэшируемых URL или корректировки логики работы с перенаправлениями.

is_redirect — Возвращает True, если ответ указывает на перенаправление (например, 302, 303, 307), и False в противном случае. Быстрая проверка наличия перенаправления для корректной обработки логики запроса.

iter_content(chunk_size=1, decode_unicode=False) — Позволяет итерировать содержимое ответа по частям (чанкам) указанного размера в байтах. Параметр chunk_size определяет размер блока, а параметр decode_unicode — следует ли декодировать данные в строку. Идеально подходит для загрузки больших файлов, чтобы не загружать весь контент в память сразу.

iter_lines(chunk_size=512, decode_unicode=False, delimiter=None) — Итерирует по строкам ответа, разбивая текст по указанному разделителю (по умолчанию — символ новой строки). Если параметр decode_unicode равен True, чанки декодируются в строки. Используйте для обработки потоковых текстовых данных, таких как логи или CSV-файлы.

json() — Преобразует содержимое ответа в объект Python (например, словарь или список) с использованием функции json.loads(). Если ответ не является корректным JSON, генерируется исключение requests.exceptions.JSONDecodeError. Перед вызовом метода убедитесь, что сервер действительно вернул JSON, или обработайте возможное исключение.

next — Возвращает объект PreparedRequest для следующего запроса в цепочке перенаправлений, если такой имеется. Полезно для анализа того, какой запрос будет отправлен далее при автоматическом перенаправлении.

ok — Свойство, возвращающее логическое значение True, если статус-код ответа меньше 400, и False в противном случае. Позволяет быстро определить, был ли запрос успешным. Используйте для проверки успешности запроса без необходимости сравнения кода состояния вручную.

raise_for_status() — Если статус-код ответа указывает на ошибку (коды 4xx или 5xx), этот метод генерирует исключение requests.exceptions.HTTPError. Это позволяет централизованно обрабатывать ошибки, не проверяя код состояния каждого запроса. Вызывайте этот метод сразу после выполнения запроса для быстрой диагностики проблем.

raw — Возвращает содержимое ответа в виде файлового объекта. Использование raw требует, чтобы в запросе был установлен stream=True.

reason — Возвращает строку с описанием статуса ответа (например, "OK" для 200 или "Not Found" для 404). Это текстовое представление, предоставляемое сервером, и может быть использовано для вывода или логирования ошибок. Точное значение может варьироваться в зависимости от сервера и его локализации.

request — Возвращает исходный объект запроса, отправленный для получения данного ответа (обычно объект типа PreparedRequest). Содержит информацию о методе, URL, заголовках и данных запроса. Полезно для отладки, когда необходимо понять, какие параметры были отправлены серверу.

status_code — Возвращает числовой HTTP-статус ответа (например, 200, 404, 500). Это основной индикатор успеха или неудачи запроса. Применяется для условной обработки ошибок в логике приложения.

text — Возвращает содержимое ответа в виде строки (str), декодированной с использованием заданной или автоматически определённой кодировки (атрибут encoding). Идеально подходит для обработки текстовых данных, таких как HTML или JSON, представленные в виде строки.

url — Возвращает окончательный URL, с которого был получен ответ, с учетом всех перенаправлений. Позволяет отследить фактическое местоположение запрошенного ресурса. Используйте для проверки, куда именно был перенаправлен запрос, особенно в случае множественных редиректов.