2012-10-24 4 views
4

가능한 중복 수신 : 나는은 $ _POST가 비어 있음을받을 때 내가 JSON을 포함하는 POST를 수신하고있어
How to get body of a POST in php?는 JSON 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하지 솔직히 말해서.

아이디어가 있으십니까? PHP에서

+0

네, 죄송합니다. 게시하기 전에 검색했지만 아무 것도 얻지 못했습니다. 나는이 문제를 찾는 방법을 몰랐다. – fred00

+0

나는 그것에 대해 너무 나쁘지 않겠지 만, 내 자신을 포함하여 때때로 *에 대한 제목을 알고 stackoverflow *에 대한 답변을 찾을 수 없습니다. –

답변

17

시도는 다음과 같이

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

감사합니다! 그것은 매력처럼 작동합니다! – fred00

+0

당신은 내 목숨을 구했습니다! :디 –

5

이 수신 스크립트에서

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

시도 (요청이 응용 프로그램/JSON 인 경우에, 당신은 $ _POST에 데이터를받지 않습니다).

다음을 참조하십시오. http://docs.php.net/wrappers.php.php