2013-05-15 37 views
0

我想弄明白,有沒有任何方法發送原始JSON到PHP而不是POST參數。如果有可能,那麼最好的方式是請求主體或POST參數。發送json作爲請求正文或POST JSON的變量

+0

你爲什麼不想使用POST?這是將數據「發佈」到HTTP資源的標準方式 – fullybaked

+1

是的,可以發送HTTP請求,其請求正文包含原始JSON。 – deceze

+0

好的,謝謝,那我應該如何讓php腳本通過json。 –

回答

4

發送具有JSON字符串作爲其請求主體的HTTP請求(這裏:在命令行上使用curl):

$ curl -d '{"foo":"bar"}' example.com/test.php 

閱讀此請求體中PHP:

$json = file_get_contents('php://input'); 

解碼它:

$data = json_decode($json, true); 

如果POST請求的請求正文包含URL編碼的鍵值對(例如,請參閱「數據庫」),則超全局PHP將自動填充爲數組foo=bar&baz=42)。在上面的示例中,您仍然使用帶有「POST數據」的HTTP POST請求。它不會自動結束於$_POST,因爲PHP不知道如何自動解碼JSON。