fetchOneConnect method

Future<List<VpnServer>> fetchOneConnect(
  1. OneConnect serverType
)

Implementation

Future<List<VpnServer>> fetchOneConnect(OneConnect serverType) async {

  String packageName = (await PackageInfo.fromPlatform()).packageName;

  final url = Uri.parse('https://flutter.oneconnect.top/view/front/controller.php');
  final Map<String, String> formFields = {
    'package_name': packageName,
    'api_key': apiKey,
    'action': 'fetchUserServers',
    'type': (serverType == OneConnect.pro) ? "pro" : "free",
  };

  try {
    final response = await http.post(
      url,
      body: formFields, // Send the parameters as form fields
    );

    if (response.statusCode == 200) {
      final List<dynamic> jsonData = json.decode(response.body);
      return jsonData.map((data) => VpnServer.fromJson(data)).toList();
    } else {
      print('CHECKTEST Error: ${response.statusCode}');
      return [];
    }
  } catch (e) {
    print('CHECKTEST Exception: $e');
    return [];
  }
}