controlUrl function
Implementation
Future<Soap?> controlUrl(String url) async {
final uri = Uri.parse(url);
final response = await req.getUri(uri);
if (response.statusCode == 200) {
final doc = XmlDocument.parse(await response.text());
for (var service in doc.findAllElements('service')) {
final serviceType = service.getElement('serviceType');
if (serviceType != null) {
final type = serviceType.text;
if ([
"urn:schemas-upnp-org:service:WANIPConnection:1",
"urn:schemas-upnp-org:service:WANPPPConnection:1"
].contains(type)) {
final controlUrl = service.getElement('controlURL');
if (controlUrl != null) {
final _urlbase = doc.getElement('URLBase');
final urlbase = _urlbase != null ? _urlbase.text : uri.origin;
return Soap(Uri.parse(urlbase + controlUrl.text), type);
}
}
}
}
}
}