2

我正在使用 Tasker 应用程序发出一个简单的 HTTP POST 请求,它工作正常,但不知何故它没有发送我的论点。HTTP GET 工作正常。我究竟做错了什么?

服务器唯一要做的就是 JSON 对所有接收到的参数进行字符串化,然后像这样返回它们:Text: { parameters }

HTTP GET 正在工作:

在此处输入图像描述

HTTP POST 有效,它返回响应 "text: {}" 但不返回任何参数:

在此处输入图像描述

现在有时它会显示“错误请求错误 400”

我已经用另一台服务器对其进行了测试,但这个问题仍然存在......

这是一个将获取和发布请求发送到同一台服务器并且两者都可以工作的小提琴。

我已将我的任务导出为 xml 供您测试:您可以在此处下载

提前谢谢各位!

4

1 回答 1

0

我已经对您提供的内容进行了一些测试。您的帖子参数似乎正在发送到服务器,但%HTTPR没有被填充。Tasker 文档说,如果响应是“基于文本的”,则将填充此变量,但情况似乎并非如此。我可能不知道 Tasker 认为什么是“基于文本的”,但我尝试过“text/plain”和“text/html”,但没有成功。

我想出的解决方法是使用 post 任务的“输出文件”字段将响应放入文件中。(将“内容类型”留空,否则这将不起作用。)然后您可以将文件读入变量并执行您需要的操作。

这要么是 Tasker 的缺陷,要么是不正确的文档,要么只是对使其工作所需的知识有误解。但是,这种解决方法将为您提供所需的东西。

这是一个 GitHub 存储库的链接,其中包含更新的任务导出。您可能需要更改输出文件名/位置才能使用您的设备。


更新: 自从我发布了上述解决方案以来,我遇到了一个名为“RESTask for Tasker”的 Tasker 插件。显然,Tasker 对 HTML 请求有足够的问题,需要一个单独的插件。我已经用 POST 测试了这个插件,它确实有效,所以这是另一种方法。该插件可在 Google Play 商店中找到。

于 2017-03-06T17:22:19.827 回答