requests — Cliente HTTP¶
El módulo requests proporciona una API mínima de cliente HTTP/HTTPS similar a la biblioteca Python requests. Cada función de petición devuelve un objeto requests.Response.
Ejemplo:
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())
Clase Response¶
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)¶
Representa una respuesta HTTP. Las instancias son devueltas por
requests.requesty por los ayudantes por método.- encoding: str¶
Codificación de cadena usada para decodificar
requests.Response.headersyrequests.Response.content. El valor predeterminado es"utf-8".
- headers: str¶
Cabeceras de respuesta decodificadas con
requests.Response.encodingy devueltas comostr.
- content: str¶
Cuerpo de la respuesta decodificado con
requests.Response.encodingy devuelto comostr.
- json() dict¶
Analiza
requests.Response.contentcomo JSON y devuelve el objeto resultante.
Funciones¶
- 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¶
Envía una petición HTTP a
urly devuelve unrequests.Response.method— Método HTTP comostr(por ejemplo,"GET","POST").url— URL de destino. Debe empezar porhttp://ohttps://.data— Cuerpo de petición en bruto. Si se establece,Content-Lengthse añade automáticamente.json— Objeto serializado a JSON y enviado como cuerpo. EstableceContent-Type: application/json.files— Diccionario que asigna un nombre de campo a una tupla(filename, fileobj). Se envía comomultipart/form-data.headers— Diccionario de cabeceras de petición adicionales.auth— Tupla(username, password)para autenticación HTTP básica.stream— Aceptado por compatibilidad de API; no se usa.
- requests.head(url: str, **kw: Any) Response¶
Envía una petición HTTP
HEADy devuelve unResponse.HEADes idéntico aGETsalvo que el servidor responde únicamente con la línea de estado y las cabeceras; el cuerpo está vacío. Úselo para comprobar si un recurso existe, inspeccionarContent-Length/Content-Typesin descargar la carga útil, o sondear una URL antes de emitir unGETmás pesado.Argumentos:
url– URL de destino; debe empezar porhttp://ohttps://.headers(kwarg) – diccionario de cabeceras de petición adicionales.auth(kwarg) – tupla(username, password)para autenticación HTTP básica.
data/json/files/streamderequest()se aceptan por completitud, pero rara vez tienen sentido paraHEAD.
- requests.get(url: str, **kw: Any) Response¶
Envía una petición HTTP
GETy devuelve unResponse.GETes el verbo estándar para recuperar una representación del recurso identificado porurl. Es seguro (no provoca cambios de estado en el servidor) e idempotente.Argumentos:
url– URL de destino; debe empezar porhttp://ohttps://.headers(kwarg) – diccionario de cabeceras de petición adicionales (por ejemplo,AuthorizationoAccept).auth(kwarg) – tupla(username, password)para autenticación HTTP básica.
El
request()subyacente permite un cuerpo de petición mediantedata/json, pero la mayoría de los servidores lo ignoran.
- requests.post(url: str, **kw: Any) Response¶
Envía una petición HTTP
POSTy devuelve unResponse.POSTenvía datos aurl, normalmente creando un nuevo recurso subordinado, desencadenando el envío de un formulario o invocando una acción. No es ni seguro ni idempotente: las llamadas repetidas pueden crear recursos duplicados.Argumentos:
url– URL de destino; debe empezar porhttp://ohttps://.data(kwarg) – cuerpo de petición en bruto (similar abytes). Envía una cabeceraContent-Lengthautomáticamente.json(kwarg) – objeto serializado a JSON y enviado como cuerpo. EstableceContent-Type: application/json.files(kwarg) – diccionario que asigna un nombre de campo a(filename, fileobj). Se envía comomultipart/form-data.headers(kwarg) – diccionario de cabeceras de petición adicionales.auth(kwarg) – tupla(username, password)para autenticación HTTP básica.
Pase como máximo uno de
data/json/files.
- requests.put(url: str, **kw: Any) Response¶
Envía una petición HTTP
PUTy devuelve unResponse.PUTreemplaza el recurso enurlcon la representación suministrada, creándolo si no existe. Es idempotente: repetir unPUTidéntico produce el mismo estado final.Argumentos:
url– URL de destino; debe empezar porhttp://ohttps://.data(kwarg) – cuerpo de reemplazo en bruto (similar abytes).json(kwarg) – objeto serializado a JSON y enviado como cuerpo de reemplazo. EstableceContent-Type: application/json.headers(kwarg) – diccionario de cabeceras de petición adicionales.auth(kwarg) – tupla(username, password)para autenticación HTTP básica.
Pase
dataojsonpara transportar la nueva representación.
- requests.patch(url: str, **kw: Any) Response¶
Envía una petición HTTP
PATCHy devuelve unResponse.PATCHaplica una modificación parcial al recurso enurl– solo cambian los campos contenidos en el cuerpo de la petición. A diferencia dePUT, no se requiere que sea idempotente (aunque muchas API lo hacen así).Argumentos:
url– URL de destino; debe empezar porhttp://ohttps://.data(kwarg) – cuerpo delta en bruto (similar abytes). El formato depende del servidor (por ejemplo, JSON Patch, JSON Merge Patch).json(kwarg) – objeto delta serializado a JSON. EstableceContent-Type: application/json.headers(kwarg) – diccionario de cabeceras de petición adicionales.auth(kwarg) – tupla(username, password)para autenticación HTTP básica.
- requests.delete(url: str, **kw: Any) Response¶
Envía una petición HTTP
DELETEy devuelve unResponse.DELETEsolicita la eliminación del recurso enurl. Es idempotente: eliminar un recurso ya eliminado no es un error (el servidor normalmente devuelve un 404, pero el estado final es el mismo).Argumentos:
url– URL de destino; debe empezar porhttp://ohttps://.headers(kwarg) – diccionario de cabeceras de petición adicionales.auth(kwarg) – tupla(username, password)para autenticación HTTP básica.
El
request()subyacente permite un cuerpo mediantedata/json, pero rara vez se usa conDELETE.