2014-10-02 4 views
0

json 데이터를 test.php에 게시하지만 test.php에는 curl 스크립트가 있습니다. 전송 된 데이터를 인쇄 할 수 없습니다. 제대로 작동하는지 나는 모른다. 데이터를 다시 얻으려면 어떻게해야합니까?json 데이터를 서버로 전송하는 방법

컬 스크립트 :

$url = "test.php";  
$content = json_encode(array('asdf'=>1)); 

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTPHEADER, 
     array("Content-type: application/json")); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $content); 

echo $json_response = curl_exec($curl); 

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

if ($status != 200) { 
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); 
} 

echo" curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl); 
curl_close($curl); 

내가 할 수있는 아무것도 출력하지

test.php :

echo "<pre>"; 
    print_r($_REQUEST); 
    print_r($_POST); 
    echo "</pre>"; 
+0

당신은 인 print_r ($ _ POST)'에서 무엇을 어떻게해야합니까;'? –

+0

print_r ($ _ POST)에 아무 것도 표시되지 않습니다. – baligena

답변

0

귀하의 POST가 키를 포함하지 않은이 게시물을 시도/값 쌍이므로 $ _POST를 채울 수있는 방법은 없습니다. 당신은 키/값 쌍으로 포맷을 시도해 볼 수도, 아니면 그냥 test.phpphp://input에서 읽을 수 있습니다 :

<pre><?php var_dump(file_get_contents('php://input')); 
+0

이제는 작동하지만 어떻게 키/값 쌍으로 형식화 할 수 있습니까? 모범이 있습니까? – baligena

+0

'curl_setopt ($ curl, CURLOPT_POSTFIELDS, array ('json'=> $ content));'충분해야한다. [curl_setopt] (http://php.net/curl-setopt) docs :'이 매개 변수는 'para1 = val1 & para2 = val2 & ...'와 같은 URL 인코딩 된 문자열로 전달되거나 필드가있는 배열로 전달 될 수 있습니다 이름을 키로, 필드 데이터를 값으로 사용합니다. value가 배열이면 Content-Type 헤더는 multipart/form-data로 설정됩니다 .' – TML

관련 문제