2014-12-18 7 views
1

Я собираюсь создать небольшой веб-сервис после архитектуры REST, и я использую Slim Framework для обработки маршрутизации. Я определил почтовый маршрут, чтобы иметь возможность добавить пользователя, например, в базу данных, отправив запрос на отправку с другого сервера с помощью расширения curl, запрос отправляется, но я не могу понять способ захвата отправленных данных для их обработки в моей функции обратного вызова, определенной в маршрутизации. Я позволяю код говорит само за себя: 1-й, маршрутpost request using curl

$app->post('/users/create/', function ($data) use($app) 
{ 
    $app->response->status(201); 
    echo "The user ".$data['name']." was added successfully"; 
} 
); 

то запрос на сообщение отправлено с помощью завиток (с другой страницы)

$data = array(
    'id' => 3, 
    'name' => 'Gree3a' 
); 
$url = "http://localhost/api/users/create/"; 
$ic = curl_init(); 

//set options 
curl_setopt($ic, CURLOPT_URL, $url); 
curl_setopt($ic, CURLOPT_POST, true); 
curl_setopt($ic, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ic, CURLOPT_RETURNTRANSFER, true); 

//perform our request 
$result = curl_exec($ic); 
curl_close($ic); 

echo $result; 

сделал я что-то пропустил?

+0

Я также пробовал $ _POST ['name'], но я получаю сообщение об ошибке – arakibi

ответ

0

Вы можете обезопасили свой маршрут, если да, то вы должны поместить следующий вариант:

curl_setopt($ch, CURLOPT_USERPWD, "user:password"); 
0

OK Я нашел его, я изменил строку:

curl_setopt($ic, CURLOPT_POSTFIELDS, $data); 

TO:

curl_setopt($ic, CURLOPT_POSTFIELDS, http_build_query($data)); 

, а затем в Маршруте, я использовал $ _POST ['name'], и это сработало.