Приложение Tasker: почему мой HTTP POST не передает параметры?

Я делаю простой запрос HTTP POST с помощью приложения Tasker, он работает нормально, но почему-то не отправляет мои аргументы. HTTP GET работает нормально. Что я делаю неправильно?

Единственное, что делает сервер, это JSON-форматирует все полученные параметры и возвращает их следующим образом: Текст: { параметры }

HTTP GET работает:

введите описание изображения здесь

HTTP POST работает, он возвращает ответ "text: {}", но не возвращает никаких параметров:

введите описание изображения здесь

Теперь иногда отображается "Ошибка неверного запроса 400"

Я проверил это с другим сервером, и эта проблема сохраняется...

Вот скрипка для отправки и получения запросов на один и тот же сервер, и оба работают.

Я экспортировал свою задачу в формате xml для тестирования: ее можно скачать здесь.

Заранее спасибо, ребята!

1 ответ

Решение

Я провел небольшое тестирование с тем, что вы предоставили. Похоже, что ваши параметры сообщения делают это на сервер, но %HTTPR не заселяется. В документации Tasker сказано, что эта переменная будет заполнена, если ответ "текстовый", но, похоже, это не так. Возможно, я не знаю, что Tasker считает "текстовым", но я пробовал "text / plain" и "text / html", но безуспешно.

Обходной путь, который я придумал, состоит в том, чтобы поместить ответ в файл, используя поле "Выходной файл" пост-задачи. (Оставьте "Тип содержимого" пустым, иначе это не сработает.) Затем вы можете прочитать файл в переменную и сделать то, что вам нужно.

Это либо дефект в Tasker, либо неправильная документация, либо просто неправильное понимание того, что нужно для его работы. Этот обходной путь, однако, даст вам то, что вам нужно.

Вот ссылка на репозиторий GitHub с обновленным экспортом задач. Возможно, вам придется изменить имя / местоположение выходного файла для работы с вашим устройством.


Обновление: так как я опубликовал вышеупомянутое решение, я наткнулся на плагин Tasker под названием "RESTask for Tasker". Очевидно, что у Tasker достаточно проблем с HTML-запросами, поэтому потребовался отдельный плагин. Я протестировал этот плагин с POST, и он работает, так что это еще один путь. Плагин доступен в магазине Google Play.

Другие вопросы по тегам