requests — cliente HTTP¶
O módulo requests fornece uma API de cliente HTTP/HTTPS mínima semelhante à biblioteca Python requests. Cada função de pedido devolve um objeto requests.Response.
Exemplo:
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())
Classe Response¶
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)¶
Representa uma resposta HTTP. As instâncias são devolvidas por
requests.requeste pelos auxiliares por método.- encoding: str¶
Codificação de string usada para descodificar
requests.Response.headerserequests.Response.content. Predefinição:"utf-8".
- headers: str¶
Cabeçalhos de resposta descodificados com
requests.Response.encodinge devolvidos comostr.
- content: str¶
Corpo da resposta descodificado com
requests.Response.encodinge devolvido comostr.
- json() dict¶
Analisa
requests.Response.contentcomo JSON e devolve o objeto resultante.
Funções¶
- 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¶
Envia um pedido HTTP para
urle devolve umrequests.Response.method— método HTTP comostr(por exemplo,"GET","POST").url— URL de destino. Deve começar comhttp://ouhttps://.data— Corpo do pedido em bruto. Se definido,Content-Lengthé adicionado automaticamente.json— Objeto serializado em JSON e enviado como corpo. DefineContent-Type: application/json.files— Dicionário que mapeia o nome do campo para um tuplo(filename, fileobj). Enviado comomultipart/form-data.headers— Dicionário de cabeçalhos de pedido adicionais.auth— Tuplo(username, password)para autenticação HTTP Basic.stream— Aceite para compatibilidade de API; não utilizado.
- requests.head(url: str, **kw: Any) Response¶
Envia um pedido HTTP
HEADe devolve umResponse.HEADé idêntico aGETexceto que o servidor responde apenas com a linha de estado e os cabeçalhos; o corpo está vazio. Use-o para verificar se um recurso existe, inspecionarContent-Length/Content-Typesem descarregar o payload, ou sondar um URL antes de emitir umGETmais pesado.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.headers(kwarg) – dicionário de cabeçalhos de pedido adicionais.auth(kwarg) – tuplo(username, password)para autenticação HTTP Basic.
data/json/files/streamderequest()são aceites por integridade mas raramente fazem sentido paraHEAD.
- requests.get(url: str, **kw: Any) Response¶
Envia um pedido HTTP
GETe devolve umResponse.GETé o verbo padrão para obter uma representação do recurso identificado porurl. É seguro (não causa alteração de estado no servidor) e idempotente.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.headers(kwarg) – dicionário de cabeçalhos de pedido adicionais (por exemplo,AuthorizationouAccept).auth(kwarg) – tuplo(username, password)para autenticação HTTP Basic.
Um corpo de pedido via
data/jsoné permitido pelorequest()subjacente mas ignorado pela maioria dos servidores.
- requests.post(url: str, **kw: Any) Response¶
Envia um pedido HTTP
POSTe devolve umResponse.POSTsubmete dados paraurl, tipicamente criando um novo recurso subordinado, desencadeando o envio de um formulário, ou invocando uma ação. Não é seguro nem idempotente: chamadas repetidas podem criar recursos duplicados.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.data(kwarg) – corpo do pedido em bruto (semelhante abytes). Envia automaticamente um cabeçalhoContent-Length.json(kwarg) – objeto serializado em JSON e enviado como corpo. DefineContent-Type: application/json.files(kwarg) – dicionário que mapeia um nome de campo para(filename, fileobj). Enviado comomultipart/form-data.headers(kwarg) – dicionário de cabeçalhos de pedido adicionais.auth(kwarg) – tuplo(username, password)para autenticação HTTP Basic.
Passe no máximo um de
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
Envia um pedido HTTP
PUTe devolve umResponse.PUTsubstitui o recurso emurlpela representação fornecida, criando-o se não existir. É idempotente: repetir umPUTidêntico produz o mesmo estado final.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.data(kwarg) – corpo de substituição em bruto (semelhante abytes).json(kwarg) – objeto serializado em JSON e enviado como corpo de substituição. DefineContent-Type: application/json.headers(kwarg) – dicionário de cabeçalhos de pedido adicionais.auth(kwarg) – tuplo(username, password)para autenticação HTTP Basic.
Passe
dataoujsonpara transportar a nova representação.
- requests.patch(url: str, **kw: Any) Response¶
Envia um pedido HTTP
PATCHe devolve umResponse.PATCHaplica uma modificação parcial ao recurso emurl– apenas os campos contidos no corpo do pedido são alterados. Ao contrário dePUT, não é obrigatoriamente idempotente (embora muitas APIs o tornem assim).Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.data(kwarg) – corpo delta em bruto (semelhante abytes). O formato depende do servidor (por exemplo, JSON Patch, JSON Merge Patch).json(kwarg) – objeto delta serializado em JSON. DefineContent-Type: application/json.headers(kwarg) – dicionário de cabeçalhos de pedido adicionais.auth(kwarg) – tuplo(username, password)para autenticação HTTP Basic.
- requests.delete(url: str, **kw: Any) Response¶
Envia um pedido HTTP
DELETEe devolve umResponse.DELETEsolicita a remoção do recurso emurl. É idempotente: eliminar um recurso já eliminado não é um erro (o servidor normalmente devolve 404, mas o estado final é o mesmo).Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.headers(kwarg) – dicionário de cabeçalhos de pedido adicionais.auth(kwarg) – tuplo(username, password)para autenticação HTTP Basic.
Um corpo via
data/jsoné permitido pelorequest()subjacente mas raramente usado comDELETE.