import 'dart:convert'; import 'dart:io'; void main() async { const int port = 6969; final requests = await HttpServer.bind('localhost', port); print('Started server bind to localhost:$port'); await for (final request in requests) { print('uri: ${request.uri}'); if (request.method == 'GET') { print('Processing GET method'); processGet(request); } else if (request.method == 'POST') { print('Processing POST method'); processPost(request); } } } void processGet(HttpRequest request) async { var filename = request.uri.toString().substring(1); bool exist = await File(filename).exists(); String data = ''; if (exist) { var data = await File(filename).readAsString(); print('Sent data:'); print(data); } else { File(filename).writeAsString(''); print('Created file $filename'); } request.response ..statusCode = HttpStatus.ok ..write(data) ..close(); } void processPost(HttpRequest request) async { var filename = request.uri.path.substring(1); String data = await utf8.decoder.bind(request).join(); File(filename).writeAsString(data); print('Received data:'); print(data); }