Cómo capturar HTTPS de Flutter en emuladores de Android

Imagen de portada de Cómo capturar HTTPS de Flutter en emuladores de Android

Actualización: 12 ene 2026

Proxyman 6.4.0 introdujo la configuración automática para emuladores de Android. Ahora puedes capturar el tráfico HTTPS de apps Flutter en emuladores de Android con solo unos clics.

Artículo original

Si alguna vez has intentado capturar tráfico HTTPS de una app Flutter en emuladores de Android, sabes lo frustrante que es. A diferencia de iOS, en Android esto es sorprendentemente difícil, y Flutter añade otra capa de complejidad.

Esta guía te muestra cómo hacerlo bien con Proxyman 6.4.0.

El problema

Depurar las llamadas de red de Flutter en emuladores de Android es complicado por varias razones:

  1. Flutter ignora la configuración de proxy del sistema — El HttpClient de Dart no usa el proxy del sistema de forma predeterminada, así que configurar un proxy en el emulador no servirá de nada.
  2. La confianza en certificados de Android — Desde Android 7, los certificados instalados por el usuario no son de confianza de forma predeterminada. Debes modificar la configuración de seguridad de red de tu app.
  3. La configuración manual es tediosa — Instalar certificados con adb, configurar el proxy de Wi-Fi, editar archivos XML... son muchos pasos y cualquiera puede salir mal.

Proxyman 6.4.0 simplifica esto con la configuración automática para emuladores de Android, pero aún necesitas configurar tu código Flutter para enviar el tráfico a través del proxy.

Capturar tráfico HTTPS de un emulador de Android con Flutter usando Proxyman
Capturar tráfico HTTPS de un emulador de Android con Flutter usando Proxyman

Requisitos previos

  • Proxyman macOS 6.4.0 o posterior
  • Android Studio con un emulador de Android (API 24+)
  • Tu proyecto Flutter

✅ Solución nueva

  1. Abre tu emulador de Android en Android Studio: asegúrate de que sea una versión con Google APIs y no con Play Store.
  2. En Proxyman, ve a Certificate Menu → Install Certificate on Android → Emulator
  3. Asegúrate de que esté marcada la casilla “Install Proxyman VPN”.
  4. Haz clic en el botón “Override all Emulators”.
Configuración automática de Proxyman para emulador de Android
Configuración automática de Proxyman para emulador de Android

Eso es todo. Sin comandos adb manuales ni navegar por los ajustes de Android.

  1. En este punto, se instalará una VPN local nueva en tu emulador de Android. Haz clic en el botón “Start” para iniciar la VPN.
  2. Deberías ver que la VPN está en ejecución y que el estado es “Connected”.
Configuración automática de Proxyman para emulador de Android
Configuración automática de Proxyman para emulador de Android
  1. Ahora puedes ejecutar tu app Flutter en el emulador de Android.
  2. Deberías ver cómo Proxyman captura el tráfico HTTPS.
Configuración automática de Proxyman para emulador de Android: captura de tráfico HTTPS de una app Flutter
Configuración automática de Proxyman para emulador de Android: captura de tráfico HTTPS de una app Flutter

⚠️ Solución anterior

Si usas Proxyman 6.3.0 o una versión anterior, debes seguir la solución antigua.

Paso 1: configura el proxy en tu código Flutter

Flutter no respeta la configuración de proxy del sistema, así que debes configurar manualmente el cliente HTTP en tu código.

Así se hace según la biblioteca HTTP que uses:

Con el paquete http

import 'dart:io';
import 'package:http/io_client.dart';

// Use your Mac's IP address (shown in Proxyman's Android setup guide)
// For emulator, you can use 10.0.2.2 which points to your host machine
String proxy = '10.0.2.2:9090';

HttpClient httpClient = HttpClient();

httpClient.findProxy = (uri) {
  return "PROXY $proxy;";
};

// Allow Proxyman's certificate
httpClient.badCertificateCallback = 
  ((X509Certificate cert, String host, int port) => true);

IOClient myClient = IOClient(httpClient);

// Now use myClient for your requests
var response = await myClient.get(Uri.parse('https://api.example.com/data'));

Con Dio

import 'dart:io';
import 'package:dio/dio.dart';
import 'package:dio/io.dart';

String proxy = '10.0.2.2:9090';

Dio dio = Dio();

dio.httpClientAdapter = IOHttpClientAdapter(
  createHttpClient: () {
    final client = HttpClient();
    client.findProxy = (url) => 'PROXY $proxy';
    client.badCertificateCallback = (cert, host, port) => true;
    return client;
  },
);

// Now use dio for your requests
var response = await dio.get('https://api.example.com/data');

CONSEJO: 10.0.2.2 es un alias especial del emulador de Android que apunta al localhost de tu equipo. Es la forma más fácil de conectarse a Proxyman en tu Mac.

Activa badCertificateCallback solo durante el desarrollo. Elimínalo antes de publicar la app en producción.

Paso 2: configura el emulador de Android con Proxyman

Ahora viene la parte fácil. Proxyman 6.4.0 puede configurar automáticamente tu emulador de Android:

  1. Abre tu emulador de Android en Android Studio
  2. En Proxyman, ve a Certificate Menu → Install Certificate on Android → Emulator
  3. Haz clic en el botón “Override all Emulators”.
Configuración automática de Proxyman para emulador de Android
Configuración automática de Proxyman para emulador de Android

Eso es todo. Sin comandos adb manuales ni navegar por los ajustes de Android.

Paso 3: ejecuta tu app Flutter

  1. Asegúrate de que Proxyman esté en ejecución
  2. Ejecuta tu app Flutter en el emulador de Android:
flutter run
  1. Haz algunas solicitudes de red en tu app
  2. Revisa Proxyman: deberías ver el tráfico HTTPS de tu app Flutter

No olvides activar SSL Proxying para los dominios que quieras inspeccionar. Haz clic con el botón derecho en un dominio en Proxyman y selecciona “Enable SSL Proxying”.

Solución de problemas

Veo tráfico, pero muestra errores de SSL

  • Si usas la configuración antigua, confirma que tu cliente HTTP de depuración acepta el certificado de Proxyman
  • Verifica que el certificado esté instalado: Ajustes de Android → Seguridad → Cifrado y credenciales → Credenciales de confianza → pestaña Usuario
  • Reinicia el emulador e inténtalo de nuevo

No aparece tráfico en Proxyman

  • Revisa bien la configuración del proxy en el código Flutter
  • Asegúrate de usar 10.0.2.2:9090 (no localhost)
  • Comprueba que Proxyman esté en ejecución y escuchando en el puerto 9090

La app se cierra o fallan las solicitudes de red

  • Comprueba que badCertificateCallback esté configurado correctamente
  • Asegúrate de que el emulador tenga acceso a internet (prueba a abrir Chrome en el emulador)

Resumen

Capturar HTTPS de Flutter en emuladores de Android requiere:

  1. Configurar el proxy en el código del cliente HTTP de Flutter
  2. Confiar en el certificado de Proxyman solo en tu configuración de depuración
  3. Usar la configuración automática de Proxyman para emuladores de Android
  4. Ejecutar tu app e inspeccionar el tráfico

Una vez configurado, puedes usar todas las herramientas de depuración de Proxyman (Breakpoint, Map Local, Scripting) para probar y depurar la capa de red de tu app Flutter.

Cuando termines, usa Revert All Changes en la ventana de configuración del emulador de Android, o elimina la VPN de prueba y el proxy del emulador. Nunca publiques badCertificateCallback ni una regla que acepte cualquier certificado. Estos atajos son útiles en una compilación local de depuración, pero hacen que una compilación de lanzamiento no sea segura.

Próximos pasos


Proxyman es una app de alto rendimiento para macOS, Windows y Linux que ayuda a los desarrolladores a capturar e inspeccionar el tráfico HTTP/HTTPS de iOS, Android, simuladores y emuladores.

Descárgala en https://proxyman.com

Noah Tran
Noah Tran

Revisado el 17 de julio de 2026. Se quitaron las referencias temporales y se aclararon la confianza solo para depuración, la solución de problemas y la limpieza.

Inspecciona el tráfico de tu app Flutter en un solo lugar

Prepara un emulador de Android y sigue las solicitudes de tu app Flutter en Proxyman.

Prueba Proxyman para macOS