2017-02-17 494 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來獲取它,我必須設置內容類型,如果我設置它,參數不是發送.. –

相關問題