3.2. HTTP en Python¶
El Protocolo Hypertext Transfer Protocol (HTTP) es el estándar de comunicación utilizado en la web para la transferencia de información entre clientes (navegadores, aplicaciones, scripts) y servidores. Python 3 ofrece varias bibliotecas para interactuar con servicios HTTP, permitiendo realizar solicitudes y manejar respuestas de manera sencilla.
3.2.1. Solicitudes HTTP¶
Al usar el HTTP, podemos realizar diferentes tipos de solicitudes, como las siguiente:
Método |
Explicación |
|
Obtener datos de un servidor. |
|
Obtener datos de un servidor. |
|
Actualizar recursos. |
|
Eliminar recursos. |
3.2.2. Bibliotecas disponibles¶
En Python, existen varias bibliotecas principales para interactuar con el protocolo HTTP. Las más comunes son:
3.2.2.1. http.client¶
Python incluye la biblioteca estándar http.client, que permite realizar solicitudes HTTP de bajo nivel. Sin embargo, su uso es más complejo en comparación con otras bibliotecas modernas.
Ejemplo de una solicitud GET con la biblioteca http.client desde la
consola interactiva de Python, ejecute el siguiente comando:
>>> import http.client
>>>
>>> conn = http.client.HTTPSConnection("jsonplaceholder.typicode.com")
>>> conn.request("GET", "/posts/1")
>>>
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
>>> print(response.read().decode())
>>>
>>> conn.close()
3.2.2.2. urllib¶
El módulo estándar urllib proporciona herramientas para manejar URLs y realizar solicitudes HTTP. Es más fácil de usar que http.client, pero sigue siendo más complejo que alternativas modernas.
Ejemplo con el módulo urllib.request desde la
consola interactiva de Python, ejecute el
siguiente comando:
>>> import urllib.request
>>>
>>> url = "https://jsonplaceholder.typicode.com/posts/1"
>>> response = urllib.request.urlopen(url)
>>>
>>> print(response.status) # Código de estado HTTP
>>> print(response.read().decode()) # Contenido de la respuesta
3.2.2.3. requests¶
La biblioteca requests es la opción más popular y fácil de usar para interactuar con HTTP en Python. No está incluida en la biblioteca estándar, ya que es externa, más se puede instalar ejecutando el siguiente comando:
pip3 install requests
Ejemplo de una solicitud GET con la librería requests
desde la consola interactiva de Python, ejecute el siguiente
comando:
>>> import requests
>>>
>>> url = "https://jsonplaceholder.typicode.com/posts/1"
>>> response = requests.get(url)
>>>
>>> print(response.status_code) # Código de estado HTTP
>>> print(response.json()) # Respuesta en formato JSON
Ejemplo de una solicitud POST con la librería requests
desde la consola interactiva de Python, ejecute el siguiente comando:
>>> import requests
>>>
>>> url = "https://jsonplaceholder.typicode.com/posts"
>>> data = {"title": "Nuevo Post", "body": "Contenido del post", "userId": 1}
>>>
>>> response = requests.post(url, json=data)
>>> print(response.status_code)
>>> print(response.json())
3.2.3. Conclusión¶
Python 3 ofrece múltiples formas de interactuar con el protocolo HTTP. Aunque los módulos estándar (http.client y urllib) son útiles, la biblioteca requests es la opción más recomendada debido a su facilidad de uso, soporte para autenticación, manejo de sesiones y compatibilidad con JSON.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.
La hora aquí es actualmente 7:35 PM UTM.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.