2012-10-24 81 views
4

可能重複:
How to get body of a POST in php?接收一個JSON POST

我收到一個包含JSON一個POST,問題是,當我收到的$ _ POST是空的。爲了測試我何時收到POST,我創建了一個包含$ _POST,$ _GET和$ _REQUEST的文件,它們都是空的。

正在發送請求的客戶端做這樣的事情:

$itemJson = '{ 
     "id": 00, 
     "value": "ok" 
    }'; 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Content-Type: application/json', 
     'Content-Length: '. strlen($itemJson)) 
    ); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $itemJson); 
    curl_close($ch); 

說實話,我不understant我如何得到這個數據,因爲沒有參數集。

任何想法?

+0

是的,我很抱歉。我在發佈之前做過搜索,但沒有收到任何信息。我不知道如何搜索這個問題。 – fred00

+0

我不會覺得它太糟糕了,我無法找到答案stackoverflow *,我知道*有時包括我自己的標題:) –

回答

17

嘗試在PHP如下(當請求是應用程序/ JSON,那麼您將無法獲得的數據爲$ _ POST)

var_dump(json_decode(file_get_contents("php://input"))); 
+1

謝謝!它像一個魅力! – fred00

+0

你救了我的命! :d –