Как запускать команды терминала с помощью Dart HttpRequest?

Мне нужно отправить запрос на сервер для запуска файла jar со строковым аргументом/параметром и вернуть результаты в виде строки.


person Nawaf Alsulami    schedule 14.09.2013    source источник


Ответы (1)


На стороне сервера вы можете запустить процесс и отправить результат обратно следующим образом:

HttpServer.bind(InternetAddress.ANY_IP_V4, 3031).then((server) {
  server.listen((HttpRequest request) {
    var param = request.uri.queryParameters['name'];
    Process.run('java', ['-jar', 'myJar.jar', param]).then((pr) => 
        request.response
          ..write(pr.stdout)
          ..close()
    );
  });
});
person Alexandre Ardhuin    schedule 17.09.2013
comment
Пожалуйста, убедитесь, что вы проверяете параметры, если вы передаете данные из Интернета непосредственно в команду терминала. Существует достаточно небезопасных приложений. - person Patrick Cornelissen; 24.01.2015