// Make sure to replace with // the external IP of your computer if you're using Android. // Note that we're using port 8888 which is Charles' default. String proxy = Platform.isAndroid ? ':8888' : 'localhost:8888'; // Create a new HttpClient instance. HttpClient httpClient = new HttpClient(); // Hook into the findProxy callback to set // the client's proxy. httpClient.findProxy = (uri) { return "PROXY $proxy;"; }; // This is a workaround to allow Charles to receive // SSL payloads when your app is running on Android. httpClient.badCertificateCallback = ((X509Certificate cert, String host, int port) => Platform.isAndroid); // Pass your newly instantiated HttpClient to http.IOClient. IOClient myClient = IOClient(httpClient); // Make your request as normal. var response = myClient.get('/my-url');