getDefaultServer method
Future<ServerSelectionResponse?>
getDefaultServer(
)
override
Implementation
@override
Future<ServerSelectionResponse?> getDefaultServer() async {
try {
if (await isInternetAvailable()) {
const tag = 'token:"';
var tokenUrl = Uri.parse('https://fast.com/app-a32983.js');
var tokenResponse = await http.get(tokenUrl);
if (tokenResponse.body.contains(tag)) {
int start = tokenResponse.body.lastIndexOf(tag) + tag.length;
String token = tokenResponse.body.substring(start, start + 32);
var serverUrl = Uri.parse(
'https://api.fast.com/netflix/speedtest/v2?https=true&token=$token&urlCount=5');
var serverResponse = await http.get(serverUrl);
var serverSelectionResponse =
ServerSelectionResponse.fromJson(json.decode(serverResponse.body));
if (serverSelectionResponse.targets?.isNotEmpty == true) {
return serverSelectionResponse;
}
}
}
} catch (e) {
if (logEnabled) {
_logger.d(e);
}
}
return null;
}