從JSON POST讀取HTTP請求的身體我正在寫被註冊爲一個網絡掛接端點的腳本。我知道它已成功註冊,因爲我正在將每個請求的標題寫入我的服務器日誌。這裏有一個例子:問題在PHP
Content-Type: text/xml; charset=UTF-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: =={obfuscated}==
Content-Length: 1918
,我已經註冊的API是POST-ING JSON對象到我的劇本,我想用PHP來解析該對象。正如你從請求頭中可以看到的那樣,有一個很大的胖胖的JSON對象正在等待被解析。這看起來很直接,但並沒有。
起初,我嘗試使用$_POST['json']
或只是$_POST
但由於數據不在數組中,我不確定如何訪問它。
我試過使用file_get_contents('php://input')
和fopen('php://input', 'r')
有和沒有json_decode()
但沒有運氣。我不能使用http_get_request_body()
,因爲我所在的服務器沒有PECL,而且這是我無法控制的。
是否有任何其他方式使用POST-ED JSON對象,我缺少互動?謝謝!
JSON正文的內容類型是錯誤的,因此它可能已被刪除。但是嘗試['$ HTTP_RAW_POST_DATA'(http://php.net/manual/en/reserved.variables.httprawpostdata.php) – mario
@mario我以前見過這個變量,但不知道如何使用它。 json_decode($ HTTP_RAW_POST_DATA);沒有工作 –
請參閱手冊頁。它需要首先在'php.ini'中啓用。你還嘗試過正確的MIME類型嗎? mod_security有任何機會嗎? – mario