setProxyServer method

  1. @override
Future<bool> setProxyServer(
  1. String proxyServer
)
override

Returns true if this platform is able to setProxyServer proxyServer.

Implementation

@override
Future<bool> setProxyServer(String proxyServer) async {
  try {
    var match = RegExp(r"^(?:http://)?(?<host>.+):(?<port>\d+)$")
        .firstMatch(proxyServer);
    if (match == null) {
      print('proxyServer parse error!');
      return false;
    }
    var host = match.namedGroup('host');
    var port = match.namedGroup('port');
    var results = await Process.run('bash', [
      '-c',
      concatCommands([
        'networksetup -setwebproxy wi-fi $host $port',
        // 'networksetup -setsecurewebproxy wi-fi $host $port',
      ])
    ]);
    print(
        'set proxyServer, exitCode: ${results.exitCode}, stdout: ${results.stdout}');
    return results.exitCode == 0;
  } catch (e) {
    print(e);
    return false;
  }
}