Flutter
Captura el tráfico HTTPS de apps de Flutter con Proxyman en emuladores de Android, dispositivos Android, simuladores de iOS e iPhone, con o sin cambios en el código.
✅ 1. Solución nueva
A partir de Proxyman 6.4.0 o posterior, o de Windows/Linux 3.7.0 o posterior
Emuladores de Android
Proxyman puede capturar HTTPS de tu app de Flutter en el emulador de Android con un solo clic. A diferencia de la solución anterior, no necesitas cambiar el código de Flutter.
- Inicia Proxyman -> Certificate Menu -> Install Certificate on Android -> Emulators…
- Asegúrate de configurar antes tu emulador de Android, y debe ser una imagen de Google APIs.
Consulta automatic-script-for-android-emulator.md para aprender a configurar tus emuladores de Android
- Marca "Install Proxyman VPN on Android emulators"
- Haz clic en "Override All Emulators"

Captura HTTPS de una app de Flutter en el emulador de Android con Proxyman
- Se abre una nueva ventana de Terminal que ejecuta nuestro script de bash para configurar tus emuladores.
- Cuando termine, se instala una nueva app VPN en tus emuladores.
- Toca el botón VPN para iniciarla -> Listo ✅
- Abre tu app de Flutter y envía solicitudes HTTPS. Proxyman las capturará ✅

⚠️ 2. Solución anterior
La solución anterior funciona con Proxyman para macOS 6.3.0 o anterior, y Windows/Linux 3.6.0 o anterior
2.1 Problema
Flutter no usa el proxy a nivel de sistema, por lo que, si usas Proxyman, es posible que no veas ningún tráfico de tu proyecto de Flutter.
La buena noticia es que puedes solucionar este problema configurando el cliente HTTP de Flutter para usar Proxyman como proxy.
En general, debes configurar el cliente HTTP para enviar todo el tráfico al servidor proxy de Proxyman, que escucha en IP = localhost, puerto = 9090.
1. Configura Flutter (obligatorio en todas las plataformas: iOS y Android)
Los pasos varían ligeramente según el cliente HTTP. Cubrimos algunos de los más populares:
- La clase HttpClient de Dart
- El paquete http
- Dio
Si usas un emulador de Android o un simulador de iOS, puedes usar String proxy = 'localhost:9090'. En dispositivos Android físicos, usa String proxy = '<YOUR_LOCAL_IP>:9090'.
Puedes encontrar <YOUR_LOCAL_IP> en Proxyman -> Certificate menu -> Install Certificate on iOS -> Physical Devices…
Usa la configuración siguiente para la biblioteca de red que utiliza tu app de Flutter:
Clase HttpClient de Dart
// Make sure to replace <YOUR_LOCAL_IP> with
// the external IP of your computer if you're using Android.
// You can get the IP in the Android Setup Guide window
String proxy = Platform.isAndroid ? '<YOUR_LOCAL_IP>:9090' : 'localhost:9090';
// Create a new HttpClient instance.
HttpClient httpClient = HttpClient();
// Hook into the findProxy callback to set
// the client's proxy.
httpClient.findProxy = (uri) {
return "PROXY $proxy;";
};
// This is a workaround to allow Proxyman to receive
// SSL payloads when your app is running on Android
httpClient.badCertificateCallback = (cert, host, port) => true;
Paquete http
// Make sure to replace <YOUR_LOCAL_IP> with
// the external IP of your computer if you're using Android.
// You can get the IP in the Android Setup Guide window
String proxy = Platform.isAndroid ? '<YOUR_LOCAL_IP>:9090' : 'localhost:9090';
// Create a new HttpClient instance.
HttpClient httpClient = HttpClient();
// Hook into the findProxy callback to set
// the client's proxy.
httpClient.findProxy = (uri) {
return "PROXY $proxy;";
};
// This is a workaround to allow Proxyman to receive
// SSL payloads when your app is running on Android.
httpClient.badCertificateCallback = (cert, host, port) => true;
// Pass your newly instantiated HttpClient to http.IOClient.
IOClient myClient = IOClient(httpClient);
// Make your request as normal.
final response = myClient.get('/my-url');
Dio ≥ v5.0.0 (recomendado)
// Make sure to replace <YOUR_LOCAL_IP> with
// the external IP of your computer if you're using Android.
// You can get the IP in the Android Setup Guide window
String proxy = Platform.isAndroid ? '<YOUR_LOCAL_IP>:9090' : 'localhost:9090';
// Create a new Dio instance.
Dio dio = Dio();
dio.httpClientAdapter = IOHttpClientAdapter(
createHttpClient: () {
final client = HttpClient();
client.findProxy = (uri) {
return 'PROXY $proxy';
};
client.badCertificateCallback = (cert, host, port) => true;
return client;
},
validateCertificate: (cert, host, port) {
return true;
},
);
Dio < v5.0.0 (APIs obsoletas)
// Make sure to replace <YOUR_LOCAL_IP> with
// the external IP of your computer if you're using Android.
// You can get the IP in the Android Setup Guide window
String proxy = Platform.isAndroid ? '<YOUR_LOCAL_IP>:9090' : 'localhost:9090';
// Create a new Dio instance.
Dio dio = Dio();
// Tap into the onHttpClientCreate callback
// to configure the proxy just as we did earlier.
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
// Hook into the findProxy callback to set the client's proxy.
client.findProxy = (url) {
return 'PROXY $proxy';
};
// This is a workaround to allow Proxyman to receive
// SSL payloads when your app is running on Android.
client.badCertificateCallback = (X509Certificate cert, String host, int port) => true;
}
2.2 Flutter con simuladores de iOS
- Inicia tu simulador de iOS desde Flutter
- En Proxyman -> Certificate menu -> Install Certificate on iOS -> Simulators…
- Sigue todos los pasos siguientes

Instala y confía en el certificado de Proxyman en tus simuladores de iOS
- ✅ Listo. Proxyman puede capturar tu tráfico HTTPS.
2.3 Flutter con dispositivos iOS
2.4 Flutter con el emulador de Android
2.5 Flutter con dispositivos Android
Créditos y referencias
Créditos a James Dixon, de https://flutterigniter.com/debugging-network-requests/