2016-01-31 3 views
2

Я пытаюсь создать API с PHP и JSON, однако я застрял на извлечении JSON на стороне получателя/API запроса.PHP Api Получение данных JSON

Так что я делаю это на клиента конце моей сделки:

$data = array("test" => "test");                  
$data_string = json_encode($data); 
$ch = curl_init('https://..../api/v1/functions? key=TPO4X2yCobCJ633&aid=9&action=add');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             

$return = curl_exec($ch); 

Но как я могу получить и извлечь POST ред данные о сервера (принимающей) стороны сделки (внутри моего API)?

Резюме:

Что я имею в виду, у меня есть клиент, который отправляет файл JSON в API теперь я, что я не понимаю, как я могу получить сторону API, чтобы увидеть и извлечь/см данные

+1

'var_dump ($ return)' –

+1

Посмотрите, что находится в '$ return'. Это будет ваша строка json. 'Var_dump ($ возврата)'. Добавьте вывод в код, чтобы помочь вам в дальнейшем. – Kishor

+0

также не забудьте закрыть curl = 'curl_close ($ ch);' – IceJOKER

ответ

2

на приемной стороне вы должны прочитать из PHP input stream, затем декодировать:

<?php 

// read the incoming POST body (the JSON) 
$input = file_get_contents('php://input'); 

// decode/unserialize it back into a PHP data structure 
$data = json_decode($input); 

// $data is now the same thing it was line 1 of your given sample code 

Если вы хотите быть более лаконичным, вы могли бы, очевидно, только гнездо эти вызовы:

<?php 
$data = json_decode(file_get_contents('php://input')); 
+1

Вы, сэр, потрясающие! – Timo

+1

Нах, только благодаря опыту изучения этого раньше. :) Счастливое кодирование! – JAAulde