requests — Cliente HTTP¶
O módulo requests fornece uma API mínima de cliente HTTP/HTTPS semelhante à biblioteca Python requests. Cada função de requisição retorna 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 retornadas por
requests.requeste pelos auxiliares por método.- encoding: str¶
Codificação de string usada para decodificar
requests.Response.headerserequests.Response.content. O padrão é"utf-8".
- headers: str¶
Cabeçalhos da resposta decodificados com
requests.Response.encodinge retornados como umastr.
- content: str¶
Corpo da resposta decodificado com
requests.Response.encodinge retornado como umastr.
- json() dict¶
Analisa
requests.Response.contentcomo JSON e retorna 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 uma requisição HTTP para
urle retorna umrequests.Response.method— método HTTP como umastr(por exemplo,"GET","POST").url— URL de destino. Deve começar comhttp://ouhttps://.data— corpo bruto da requisição. Se definido,Content-Lengthé adicionado automaticamente.json— objeto serializado em JSON e enviado como corpo. DefineContent-Type: application/json.files— dicionário mapeando o nome do campo para uma tupla(filename, fileobj). Enviado comomultipart/form-data.headers— dicionário de cabeçalhos de requisição adicionais.auth— tupla(username, password)para autenticação HTTP Basic.stream— aceito para compatibilidade de API; não utilizado.
- requests.head(url: str, **kw: Any) Response¶
Envia uma requisição HTTP
HEADe retorna umResponse.HEADé idêntico aGET, exceto que o servidor responde apenas com a linha de status e os cabeçalhos; o corpo fica vazio. Use-o para verificar se um recurso existe, inspecionarContent-Length/Content-Typesem baixar o payload, ou sondar uma URL antes de emitir umGETmais pesado.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.headers(kwarg) – dicionário de cabeçalhos de requisição adicionais.auth(kwarg) – tupla(username, password)para autenticação HTTP Basic.
data/json/files/streamderequest()são aceitos por completude, mas raramente fazem sentido paraHEAD.
- requests.get(url: str, **kw: Any) Response¶
Envia uma requisição HTTP
GETe retorna umResponse.GETé o verbo padrão para recuperar uma representação do recurso identificado porurl. É seguro (não causa nenhuma mudança de estado no servidor) e idempotente.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.headers(kwarg) – dicionário de cabeçalhos de requisição adicionais (por exemplo,AuthorizationouAccept).auth(kwarg) – tupla(username, password)para autenticação HTTP Basic.
Um corpo de requisição via
data/jsoné permitido pelorequest()subjacente, mas ignorado pela maioria dos servidores.
- requests.post(url: str, **kw: Any) Response¶
Envia uma requisição HTTP
POSTe retorna umResponse.POSTsubmete dados aurl, normalmente criando um novo recurso subordinado, acionando 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 bruto da requisição (do tipobytes). Envia um cabeçalhoContent-Lengthautomaticamente.json(kwarg) – objeto serializado em JSON e enviado como corpo. DefineContent-Type: application/json.files(kwarg) – dicionário mapeando um nome de campo para(filename, fileobj). Enviado comomultipart/form-data.headers(kwarg) – dicionário de cabeçalhos de requisição adicionais.auth(kwarg) – tupla(username, password)para autenticação HTTP Basic.
Passe no máximo um entre
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
Envia uma requisição HTTP
PUTe retorna umResponse.PUTsubstitui o recurso emurlpela representação fornecida, criando-o caso não exista. É idempotente: repetir umPUTidêntico produz o mesmo estado final.Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.data(kwarg) – corpo bruto de substituição (do tipobytes).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 requisição adicionais.auth(kwarg) – tupla(username, password)para autenticação HTTP Basic.
Passe
dataoujsonpara transportar a nova representação.
- requests.patch(url: str, **kw: Any) Response¶
Envia uma requisição HTTP
PATCHe retorna umResponse.PATCHaplica uma modificação parcial ao recurso emurl– apenas os campos contidos no corpo da requisição são alterados. Diferentemente dePUT, não é obrigado a ser idempotente (embora muitas APIs o tornem assim).Argumentos:
url– URL de destino; deve começar comhttp://ouhttps://.data(kwarg) – corpo bruto de delta (do tipobytes). O formato depende do servidor (por exemplo, JSON Patch, JSON Merge Patch).json(kwarg) – objeto de delta serializado em JSON. DefineContent-Type: application/json.headers(kwarg) – dicionário de cabeçalhos de requisição adicionais.auth(kwarg) – tupla(username, password)para autenticação HTTP Basic.
- requests.delete(url: str, **kw: Any) Response¶
Envia uma requisição HTTP
DELETEe retorna umResponse.DELETEsolicita a remoção do recurso emurl. É idempotente: excluir um recurso já excluído não é um erro (o servidor normalmente retorna um 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 requisição adicionais.auth(kwarg) – tupla(username, password)para autenticação HTTP Basic.
Um corpo via
data/jsoné permitido pelorequest()subjacente, mas raramente usado comDELETE.