Qué es el módulo de solicitudes de Python

Actualidad y novedades sobre el lenguaje de programación Python
Novedades sobre el lenguaje de programación Python

El módulo de “solicitudes” de Python realiza solicitudes HTTP a servicios web o API. Proporciona una forma sencilla y cómoda de enviar solicitudes HTTP y gestionar respuestas, lo que facilita la interacción con los servicios web que utilizar la biblioteca urllib integrada.

El módulo de solicitudes le permite enviar solicitudes HTTP/1.1 con excepcional facilidad. No es necesario agregar manualmente cadenas de consulta a sus URL ni codificar sus datos PUT y POST, pero hoy en día, ¡solo use el método json!

Descargue e instale el módulo de solicitudes

Para comenzar con la biblioteca de solicitudes, primero debe instalarla, ya que no está incluida en la biblioteca estándar de Python:

python -m pip install requests

Sintaxis

requests.methodname(params)

Creando una solicitud

# Importing the requests module
import requests

# Defining the URL for the request
url = 'https://api.example.com/data'

# Sending a GET request to the specified URL
response = requests.get(url)

# Checking if the request was successful (HTTP status code 200)
if response.status_code == 200:
  # Printing the response content as text
  print(response.text)
else:
  print(f'Request failed with status code {response.status_code}')

Además, para OBTENER solicitudes, el módulo de solicitudes admite otros métodos HTTP como POST, PUT, DELETE y más:

# Sending a POST request with JSON data

data = {'key': 'value'}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=data, headers=headers)

Métodos de solicitud

El módulo de solicitudes proporciona muchas otras funciones, como manejar tiempos de espera, administrar cookies, manejar redirecciones y más.

MethodDescription
delete(url, args)Envía una solicitud DELETE a la URL especificada
get(url, params, args)Envía una solicitud GET a la URL especificada
head(url, args)Envía una solicitud HEAD a la URL especificada
patch(url, data, args)Envía una solicitud PATCH a la URL especificada
post(url, data, json, args)Envía una solicitud POST a la URL especificada
put(url, data, args)Envía una solicitud PUT a la URL especificada
request(method, url, args)Envía una solicitud del método especificado a la URL especificada

Objeto de respuesta

Estos son los principales atributos y métodos del objeto Respuesta:

  1. .text: el contenido de la respuesta se decodifica como una cadena utilizando la codificación de caracteres especificada por los encabezados de la respuesta (o UTF-8 si no se especifica Ninguno).
  2. .content: el contenido de la respuesta sin procesar en bytes.
  3. .status_code: el código de estado HTTP devuelto por el servidor.
  4. .headers: un objeto similar a un diccionario que contiene los encabezados de respuesta.
  5. .cookies: un objeto RequestsCookieJar que representa las cookies establecidas o devueltas en la respuesta.
  6. .url: La URL de la respuesta.
  7. .encoding: la codificación de caracteres utilizada para decodificar el contenido de la respuesta para producir el atributo .text. Se puede configurar manualmente para cambiar la codificación.
  8. .reason: la frase de motivo HTTP devuelta por el servidor (por ejemplo, “OK” para un código de estado 200).
  9. .elapsed: objeto timedelta que representa el tiempo necesario para completar la solicitud.

Autenticación mediante solicitudes de Python

La autenticación es un aspecto crucial de muchos servicios web. La biblioteca de solicitudes en Python proporciona mecanismos integrados para manejar varios tipos de autenticación.

Autenticación básica

Basic Authentication requires a username and password. It sends the credentials as a Base64-encoded string in the request headers.

import requests
from requests.auth import HTTPBasicAuth

response = requests.get('https://api.example.com/data', 
                          auth=HTTPBasicAuth('username', 'password'))

# Alternatively, you can use shorthand:
response = requests.get('https://api.example.com/data', auth=('username', 'password'))

Autenticación implícita

La autenticación implícita es un mecanismo de desafío-respuesta que es más seguro que la autenticación básica.

from requests.auth import HTTPDigestAuth

response = requests.get('https://api.example.com/data', 
                         auth=HTTPDigestAuth('username', 'password'))

Autenticación de token de portador (por ejemplo, OAuth2.0)

Para API que requieren autenticación basada en tokens, como OAuth2.0:

import requests

headers = {
  'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}

response = requests.get('https://api.example.com/data', headers=headers)

Verificación de certificación SSL

En el contexto de la biblioteca de solicitudes en Python, la verificación del certificado SSL está habilitada de forma predeterminada para todas las solicitudes HTTPS. Esta es una característica de seguridad para evitar posibles ataques de intermediarios.

Comportamiento en solicitudes:

Comportamiento por defecto

De forma predeterminada, las solicitudes verificarán el certificado SSL del servidor.

La solicitud generalmente procede si el certificado es válido y está emitido por una autoridad certificadora (CA) confiable. Si el certificado no es válido, está autofirmado, ha caducado o ha sido emitido por una CA que no es de confianza, las solicitudes generarán un SSLError.

Deshabilitar la verificación

Para el desarrollo o al conectarse a un servidor con un certificado autofirmado, es posible que desee deshabilitar la verificación del certificado. Sin embargo, esto no se recomienda para uso en producción.

response = requests.get('https://example.com', verify=False)

Para suprimir esta advertencia (aunque no se recomienda), puede hacer lo siguiente:

import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

Objetos de sesión

En la biblioteca de solicitudes, un objeto de sesión permite conservar parámetros específicos en todas las solicitudes.

Esto puede resultar especialmente útil cuando realizas varias solicitudes al mismo servidor y desea reutilizar atributos específicos como encabezados, cookies, servidores proxy o detalles de autenticación.

El uso de una sesión también puede mejorar el rendimiento, ya que puede reutilizar la conexión TCP subyacente para múltiples solicitudes al mismo host en lugar de crear una nueva conexión para cada solicitud.

En resumen, si realiza varias solicitudes al mismo servidor o requiere que atributos específicos persistan en todas las solicitudes, el uso de un objeto Session puede simplificar su código y mejorar el rendimiento.

import requests

s = requests.Session()

s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')

op = s.get('https://httpbin.org/cookies')

print(op.text)

Relacionado

Java vs Python, ¿Cuáles son sus diferencias?

Comparativa e introducción entre dos de los lenguajes de programación más utilizados en la actualidad, como son: Python y Java ? Quizás te interese: mejores libros de programación >> programas para desarrolladores >> mejores lenguajes de programación >> mejores auriculares para programadores >> ratones verticales para ¡SEGUIR LEYENDO!

El mejor lenguaje de programación para la Ciencia de Datos: Python vs. Julia vs. R

El lenguaje de programación es prácticamente la columna vertebral de la ciencia de datos y en el avance moderno de la tecnología, existen muchos lenguajes disponibles. Pero la pregunta, al menos hoy, es cuál de ellos es el más adecuado para un científico de datos. Actualmente, ¡SEGUIR LEYENDO!

¿Qué lenguajes de programación usan los ingenieros de Inteligencia Artificial?

La Inteligencia Artificial se ha convertido en una de los principales puntos dentro de las agendas comerciales para mejorar la experiencia del cliente, la resiliencia y la confiabilidad. Con los avances en aprendizaje automático, análisis de datos e inteligencia artificial conversacional, las empresas comienzan a darse ¡SEGUIR LEYENDO!

Comparando Python con otros lenguajes de programación populares

Este artículo analiza los numerosos beneficios de Python como uno de los lenguajes de programación más importantes disponibles y por qué deberías considerar usarlo para tu proyecto de software en lugar de otras opciones populares. Python es considerado como uno de los lenguajes de programación más ¡SEGUIR LEYENDO!

10 Mejores Herramientas de Inteligencia Artificial con Posibilidades de Crecer en el Futuro

Está claro que en los próximos años, la inteligencia artificial ayudará en todos los desarrollos importantes y cambiará la forma en que se hacen las cosas a día de hoy. Es muy probable, que a largo plazo se termine por convertir en un total aliado indispensable ¡SEGUIR LEYENDO!