Process.runShellCommandAsynchronously () из функции-оболочки, то есть не в главном цикле - PullRequest
0 голосов
/ 09 января 2019

У меня есть функция postData (String data), которая асинхронно отправляет HTTPS POST-запрос, используя curl со стороны Linux:

void postData(String data) {
    Process p;
    p.runShellCommandAsynchronously("curl -X POST -H x-api-key:" + apiKey + " -H content-type:application/json -m 10 -s -o /dev/null -d '" + data + "' " + WEB_SERVICE_URL);
}

Запрос никогда не поступает на целевой сервер, когда я вызываю функцию из основного цикла следующим образом:

void loop() {
    postData("...");
}

но это работает, когда я вызываю код функции прямо из основного цикла:

void loop() {
    Process p;
    p.runShellCommandAsynchronously("curl -X POST -H x-api-key:" + apiKey + " -H content-type:application/json -m 10 -s -o /dev/null -d '" + data + "' " + WEB_SERVICE_URL);
}

Может кто-нибудь объяснить мне, почему это так? Я бы предпочел, чтобы у меня был код в функции.

...