2017-02-17 492 views
2

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

服务器做的唯一事情是JSON字符串化所有收到的参数,就像回到他们:正文:{参数}

HTTP GET工作:

enter image description here

HTTP POST工作,它返回响应“text:{}”但不返回任何参数:

enter image description here

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

我已经与另一台服务器上测试它,这个问题依然存在......

Here's a fiddle发送GET和POST请求相同的服务器和两个工作。

我出口我的任务为XML为你测试:你可以download it here

提前感谢你们!

回答

0

我已经用你提供的东西做了一点测试。看来您的发布参数正在将其发送到服务器,但%HTTPR未获得填充。 Tasker文档说,如果响应是“基于文本的”,则将填充此变量,但似乎并非如此。我可能不知道塔斯克认为什么是“基于文本”,但我已经尝试过“text/plain”和“text/html”,但没有运气。

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

这可能是Tasker中的一个缺陷,文档不正确,或者只是误解了它的工作原理。但是,这种解决方法将为您提供所需的功能。

这是一个link GitHub存储库与更新的任务导出。您可能需要更改输出文件名称/位置才能使用设备。


更新: 因为我张贴上述方案,我已经越过所谓的“RESTask的塔斯克”一塔斯克插件运行。显然,塔斯克有足够的HTML请求问题需要单独的插件。我用POST测试了这个插件,它确实有效,所以这是另一种方法。该插件可在Google Play商店中使用。

+0

谢谢@Cheticamp。它为我工作!不幸的是,我打算将我的脚本作为应用程序导出,因此我无法使用外部插件。 但这在塔斯克尔是一个完全奇怪的错误。它与%HTTPD和内容类型有关,如果我将Content Type留空,但%HTTPD不显示任何内容,导致%HTTPL显示正确的响应长度。如果我把内容键入它不发送参数(我测试过它的服务器端也是一样,但事实并非如此):( 无论如何,我只是想发布一个文件,所以我不甚至需要得到的参数回来,我只需要他们发送,然后我得到只是一个“OK”的回应。谢谢你的帮助! –

+0

我很高兴它的工作。在我看来这样的缺陷已经在塔斯克的一段时间。我不认为大多数POST请求寻找比OK等的响应,因此这可能不来了很多。 – Cheticamp

+0

是啊,因为我还没有发现太多问题,我认为人们不btw即使得到那个“ok”我也需要写这个文件,'因为如果我使用%HTTPD来获取它,我必须设置内容类型,如果我设置它,参数不是发送.. –

相关问题