Capturar solicitudes HTTP/HTTPS de axios en Node.js
En este artículo veremos:
- Cómo capturar las solicitudes y respuestas HTTP/HTTPS de la biblioteca axios en Node.js con Proxyman
1. Hacer una solicitud HTTPS con axios
Si eres desarrollador de JavaScript o Node.js, es habitual hacer solicitudes REST HTTP/HTTPS con la biblioteca axios. Axios ofrece APIs prácticas basadas en promesas que facilitan hacer solicitudes.
Estas son sus ventajas:
- Fácil de usar: Axios ofrece una API sencilla para hacer solicitudes HTTP, lo que lo convierte en una opción popular entre los desarrolladores web.
- Compatibilidad multiplataforma: Axios puede usarse tanto en el navegador como en Node.js, lo que lo convierte en una opción versátil para quienes desarrollan aplicaciones web.
- Compatible con promesas: Axios admite promesas, lo que permite hacer solicitudes asíncronas y facilita el manejo de las respuestas.
- Cancelación de solicitudes: Axios ofrece un mecanismo para cancelarlas, útil cuando el usuario abandona una página o cuando una solicitud tarda demasiado en completarse.
- Interceptores: Axios admite interceptores, que sirven para modificar las solicitudes o respuestas antes de enviarse o recibirse.
- Gestión de errores: Axios ofrece una buena gestión de errores, lo que permite a los desarrolladores manejarlos fácilmente en sus aplicaciones.
- Gestión de datos JSON: Axios puede analizar automáticamente los datos JSON recibidos del servidor y transformar los que se envían en las solicitudes.
El siguiente código de ejemplo muestra cómo hacer una solicitud con la biblioteca axios.
import axios from 'axios';
var response = await axios.get("https://google.com");
console.log(response);
response = await axios.get("https://httpbin.org/get?lib=axios&schema=https");
console.log(response);
response = await axios.get("http://httpbin.org/get?lib=axios&schema=http");
console.log(response);

Para ejecutarlo:
- Guarda el código de ejemplo en
main.js - Abre la Terminal en ese directorio y ejecuta
npm init -ypara crear un paquete sencillo. - Instala axios:
npm install axios node main.js- ¡Listo!
2. ¿Cómo capturar las solicitudes y respuestas HTTP/HTTPS?
Problema actual
Por defecto, Axios no respeta la configuración de proxy HTTP del sistema. Por eso, no verás ninguna solicitud ni respuesta de Axios en Proxyman ni en otros proxies de depuración web (por ejemplo, Charles Proxy o Fiddler).
Para solucionarlo, hay que configurar el proxy manualmente. Este es un ejemplo de cómo hacerlo. Más información en la documentación de Axios.
var response = await axios.get({
url: "https://google.com",
// Provide a Proxy config
proxy: {
protocol: 'https',
host: '127.0.0.1',
port: 9090
},
});
Es propenso a errores y consume mucho tiempo, porque hay que modificar el código fuente a mano.
Solución ✅
Afortunadamente, Proxyman incluye una función que te ayuda a capturar solicitudes y respuestas HTTP/HTTPS sin ninguna configuración.
- Descarga la última versión de la app para macOS en https://proxyman.com/
- Instala el certificado de Proxyman en tu Mac. Para ello, abre el menú Certificate → Install Certificate on this Mac… → haz clic en el botón "Install & Trust".

- Abre el menú Setup → Automatic → haz clic en "New Terminal app…"

- Se abre una nueva app Terminal. Es la app Terminal de Apple preconfigurada, que captura y descifra automáticamente el tráfico HTTPS de Axios.
- Ejecuta de nuevo
node main.jsen la nueva app Terminal y, ahora, Proxyman captura y descifra todo el tráfico HTTP/HTTPS 🎉

- ¡Listo!
- Si quieres entender cómo funciona por dentro, consulta la documentación de Automatic Setup
- Si prefieres usar tu propia terminal (iTerm2 o Hyper), consulta Manual Setup.
Otras bibliotecas de Node.js compatibles
Proxyman admite de forma nativa: Axios, got, superagent, fetch y node-fetch.
Conclusión
Capturar el tráfico HTTP/HTTPS de scripts de Node.js con axios es propenso a errores y consume mucho tiempo. Sin embargo, se puede hacer sin configuración y con un solo clic, usando Automatic Setup de Proxyman.
Ejecuta node main.js dentro de la terminal que abre Proxyman, porque la configuración se limita a esa sesión. No modifica tu perfil de shell. Si el tráfico sigue sin aparecer, comprueba si el código define su propio agente o su propia opción de proxy de Axios. Después, prueba una solicitud fetch sencilla de Node en la misma terminal para distinguir si el problema es un ajuste de la app o de la configuración.
Proxyman es una app de alto rendimiento para macOS que permite a los desarrolladores capturar e inspeccionar el tráfico HTTP(s) de apps y dominios en dispositivos iOS, simuladores de iOS y dispositivos Android.
Descárgala en https://proxyman.com/
