отправить запрос с помощью curl

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

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

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

$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;

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

1

Решение

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

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

Другие решения

ОК, я узнал, я изменил строку:

curl_setopt($ic, CURLOPT_POSTFIELDS, $data);

ДО:

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

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

0

По вопросам рекламы [email protected]