handleWebdavTest method
Future<void>
handleWebdavTest(
- ArgResults argResults
)
Implementation
Future<void> handleWebdavTest(ArgResults argResults) async {
final port = int.tryParse(argResults['port'] ?? '8080') ?? 8080;
final url = Uri.parse('http://localhost:$port/');
print('\ud83e\uddea Testing WebDAV server at $url ...');
final basicAuth =
'Basic ${base64Encode(utf8.encode('filen:filen-webdav'))}';
try {
final request = http.Request('PROPFIND', url)
..headers['Authorization'] = basicAuth
..headers['Depth'] = '0'
..headers['Content-Type'] = 'application/xml'
..body =
'<?xml version="1.0" encoding="utf-8"?><D:propfind xmlns:D="DAV:"><D:prop><D:resourcetype/></D:prop></D:propfind>';
final response =
await http.Client().send(request).timeout(Duration(seconds: 10));
await response.stream.drain<void>();
if (response.statusCode == 207) {
print('\u2705 Connection successful! (207 Multi-Status)');
} else {
print('\u274c Connection failed (${response.statusCode})');
}
} catch (e) {
if (e is SocketException) {
print('\u274c Server not reachable at $url');
} else if (e is TimeoutException) {
print('\u274c Connection timed out');
} else {
print('\u274c Connection test failed: $e');
}
}
}