requests — HTTP-клиент¶
Модуль requests предоставляет минимальный API HTTP/HTTPS-клиента, аналогичный библиотеке Python requests. Каждая функция запроса возвращает объект requests.Response.
Пример:
import requests
# GET a JSON resource.
r = requests.get("https://httpbin.org/get")
print(r.status_code, r.reason)
print(r.json())
# POST JSON.
r = requests.post(
"https://httpbin.org/post",
json={"id": 1, "value": 42},
headers={"X-Source": "openmv"},
)
print(r.json())
Класс Response¶
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)¶
Представляет HTTP-ответ. Экземпляры возвращаются
requests.requestи вспомогательными функциями для отдельных методов.- encoding: str¶
Строковая кодировка, используемая для декодирования
requests.Response.headersиrequests.Response.content. По умолчанию"utf-8".
- headers: str¶
Заголовки ответа, декодированные с помощью
requests.Response.encodingи возвращаемые какstr.
- content: str¶
Тело ответа, декодированное с помощью
requests.Response.encodingи возвращаемое какstr.
- json() dict¶
Разбирает
requests.Response.contentкак JSON и возвращает полученный объект.
Функции¶
- requests.request(method: str, url: str, data: bytes | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) Response¶
Отправляет HTTP-запрос на
urlи возвращаетrequests.Response.method— HTTP-метод в видеstr(например,"GET","POST").url— целевой URL. Должен начинаться сhttp://илиhttps://.data— необработанное тело запроса. Если задано,Content-Lengthдобавляется автоматически.json— объект, сериализуемый в JSON и отправляемый в качестве тела. УстанавливаетContent-Type: application/json.files— словарь, сопоставляющий имя поля с кортежем(filename, fileobj). Отправляется какmultipart/form-data.headers— словарь дополнительных заголовков запроса.auth— кортеж(username, password)для базовой HTTP-аутентификации.stream— принимается для совместимости API; не используется.
- requests.head(url: str, **kw: Any) Response¶
Отправляет HTTP-запрос
HEADи возвращаетResponse.HEADидентиченGET, за исключением того, что сервер отвечает только строкой состояния и заголовками; тело пустое. Используйте его, чтобы проверить, существует ли ресурс, изучитьContent-Length/Content-Typeбез загрузки полезной нагрузки или предварительно опросить URL перед более тяжёлымGET.Аргументы:
url– целевой URL; должен начинаться сhttp://илиhttps://.headers(kwarg) – словарь дополнительных заголовков запроса.auth(kwarg) – кортеж(username, password)для базовой HTTP-аутентификации.
data/json/files/streamизrequest()принимаются для полноты, но редко имеют смысл дляHEAD.
- requests.get(url: str, **kw: Any) Response¶
Отправляет HTTP-запрос
GETи возвращаетResponse.GET— стандартный метод для получения представления ресурса, идентифицируемогоurl. Он безопасен (не вызывает изменений состояния на стороне сервера) и идемпотентен.Аргументы:
url– целевой URL; должен начинаться сhttp://илиhttps://.headers(kwarg) – словарь дополнительных заголовков запроса (например,AuthorizationилиAccept).auth(kwarg) – кортеж(username, password)для базовой HTTP-аутентификации.
Тело запроса через
data/jsonдопускается базовой функциейrequest(), но игнорируется большинством серверов.
- requests.post(url: str, **kw: Any) Response¶
Отправляет HTTP-запрос
POSTи возвращаетResponse.POSTотправляет данные наurl, обычно создавая новый подчинённый ресурс, инициируя отправку формы или вызывая действие. Он не является ни безопасным, ни идемпотентным: повторные вызовы могут создавать дублирующиеся ресурсы.Аргументы:
url– целевой URL; должен начинаться сhttp://илиhttps://.data(kwarg) – необработанное тело запроса (bytes-подобное). Автоматически отправляет заголовокContent-Length.json(kwarg) – объект, сериализуемый в JSON и отправляемый в качестве тела. УстанавливаетContent-Type: application/json.files(kwarg) – словарь, сопоставляющий имя поля с(filename, fileobj). Отправляется какmultipart/form-data.headers(kwarg) – словарь дополнительных заголовков запроса.auth(kwarg) – кортеж(username, password)для базовой HTTP-аутентификации.
Передавайте не более одного из
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
Отправляет HTTP-запрос
PUTи возвращаетResponse.PUTзаменяет ресурс по адресуurlпредоставленным представлением, создавая его, если он не существует. Он идемпотентен: повторение идентичногоPUTдаёт одно и то же конечное состояние.Аргументы:
url– целевой URL; должен начинаться сhttp://илиhttps://.data(kwarg) – необработанное тело замены (bytes-подобное).json(kwarg) – объект, сериализуемый в JSON и отправляемый в качестве тела замены. УстанавливаетContent-Type: application/json.headers(kwarg) – словарь дополнительных заголовков запроса.auth(kwarg) – кортеж(username, password)для базовой HTTP-аутентификации.
Передайте либо
data, либоjsonдля передачи нового представления.
- requests.patch(url: str, **kw: Any) Response¶
Отправляет HTTP-запрос
PATCHи возвращаетResponse.PATCHприменяет частичное изменение к ресурсу по адресуurl– меняются только поля, содержащиеся в теле запроса. В отличие отPUT, он не обязан быть идемпотентным (хотя многие API делают его таковым).Аргументы:
url– целевой URL; должен начинаться сhttp://илиhttps://.data(kwarg) – необработанное тело дельты (bytes-подобное). Формат зависит от сервера (например, JSON Patch, JSON Merge Patch).json(kwarg) – объект дельты, сериализуемый в JSON. УстанавливаетContent-Type: application/json.headers(kwarg) – словарь дополнительных заголовков запроса.auth(kwarg) – кортеж(username, password)для базовой HTTP-аутентификации.
- requests.delete(url: str, **kw: Any) Response¶
Отправляет HTTP-запрос
DELETEи возвращаетResponse.DELETEзапрашивает удаление ресурса по адресуurl. Он идемпотентен: удаление уже удалённого ресурса не является ошибкой (сервер обычно возвращает 404, но конечное состояние то же самое).Аргументы:
url– целевой URL; должен начинаться сhttp://илиhttps://.headers(kwarg) – словарь дополнительных заголовков запроса.auth(kwarg) – кортеж(username, password)для базовой HTTP-аутентификации.
Тело через
data/jsonдопускается базовой функциейrequest(), но редко используется сDELETE.