Cómo capturar tráfico HTTPS de requests o httpx en Python
Este tutorial te muestra cómo capturar el tráfico HTTPS de las librerías requests o httpx de Python con fines de depuración.
Al final de este tutorial habrás logrado lo siguiente:
- Configurar Proxyman
- ✅ Capturar las solicitudes y respuestas HTTP/HTTPS del código Python sin cambiar nada del código
- Funciona con las librerías
requestsyhttpx
Aquí tienes el código fuente de este tutorial
Requisitos previos
- Python 3.12.0
- Librería requests o httpx
- Proxyman para macOS (descárgalo desde Proxyman.com)
Empecemos
- Descarga Proxyman desde Proxyman.com
- Abre Proxyman e instala el certificado en tus dispositivos macOS. Puedes encontrar el certificado en
Proxyman > Certificate Menu -> Install for macOS -> Follow the instruction - En Proxyman -> Setup Menu -> Automatic Setup -> haz clic en el botón "Open new Terminal"

CONSEJO #1: Puedes elegir qué terminal se abre. Es compatible con iTerm, Terminal, Hyper, etc.
CONSEJO #2: Si quieres usar tu propia terminal -> abre el Setup Menu -> Manual Setup -> copia el comando -> abre tu terminal y pega el comando

- En esta terminal -> ejecuta tu código de Python.
Si no tienes código de Python, puedes usar el código de ejemplo del código fuente
pip install requests httpx
import requests
import httpx
def make_post_request(): # The URL we're sending the POST request to
url = 'https://httpbin.org/post'
# Sample data to send in the POST request
data = {
'name': 'John Doe',
'age': 30,
'message': 'Hello, World!'
}
try:
# Make the POST request
response = requests.post(url, json=data)
# Ensure the request was successful
response.raise_for_status()
# Print the response
print("Response Status Code:", response.status_code)
print("\nResponse Content:")
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
def make_post_request_httpx(): # The URL we're sending the POST request to
url = 'https://httpbin.org/post'
# Sample data to send in the POST request
data = {
'name': 'John Doe',
'age': 30,
'message': 'Hello, World!'
}
try:
# Create an httpx client
with httpx.Client() as client:
# Make the POST request
response = client.post(url, json=data)
# Ensure the request was successful
response.raise_for_status()
# Print the response
print("Response Status Code:", response.status_code)
print("\nResponse Content:")
print(response.json())
except httpx.RequestError as e:
print(f"An error occurred while making the request: {e}")
except httpx.HTTPStatusError as e:
print(f"HTTP Error occurred: {e}")
if **name** == "**main**":
make_post_request()
print("\nNow trying with httpx:")
make_post_request_httpx()
Ejecuta:
python main.py

Verás la salida en Proxyman.
- Proxyman captura automáticamente el tráfico HTTP/HTTPS de tu código Python.

- ¡Listo! ✅
Resumen
Capturar el tráfico HTTP/HTTPS de código Python es muy fácil con Proxyman. No necesitas modificar ningún código.
De lo contrario, tendrías que modificar manualmente tu código para confiar en el certificado de Proxyman y configurar un servidor proxy, lo cual no es buena idea.
¿Qué sigue?
Automatic Setup o Manual Setup pueden capturar el tráfico HTTP/HTTPS de cualquier código Python, Ruby o NodeJS. No necesitas modificar ningún código.
La configuración del proxy pertenece a la terminal que abre Proxyman. Activa tu entorno virtual y ejecuta Python en esa misma ventana. Si falta alguna llamada, comprueba si el cliente se creó con trust_env=False, con un transporte personalizado o con su propia configuración de proxy. Al cerrar la terminal se termina la configuración temporal y no se modifica tu perfil de shell.
