Php 使用curl发布请求

Php 使用curl发布请求,php,rest,post,curl,libcurl,Php,Rest,Post,Curl,Libcurl,我将按照REST架构构建一个小型web服务,并使用Slim框架处理路由。我定义了一个post路由,以便能够在数据库中添加用户,例如,通过使用curl扩展从另一台服务器发送post请求,请求被发送,但我无法找到一种方法来获取发送的数据,以便在路由中定义的回调函数中处理它们。我让代码自己说话: 第一,路线 $app->post('/users/create/', function ($data) use($app) { $app->response->status(201)

我将按照REST架构构建一个小型web服务,并使用Slim框架处理路由。我定义了一个post路由,以便能够在数据库中添加用户,例如,通过使用curl扩展从另一台服务器发送post请求,请求被发送,但我无法找到一种方法来获取发送的数据,以便在路由中定义的回调函数中处理它们。我让代码自己说话: 第一,路线

$app->post('/users/create/', function ($data) use($app)
 {
   $app->response->status(201);
   echo "The user ".$data['name']." was added successfully";
 }
);  
然后使用curl从另一个页面发送post请求

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

我错过什么了吗

您可能已经确定了您的路线,如果是这样,您必须选择以下选项:

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

好的,我发现了,我改变了路线:

curl_setopt($ic, CURLOPT_POSTFIELDS, $data);
致:


然后在路由中,我使用了$\u POST['name'],它成功了。

我也尝试了$\u POST['name'],但我得到了一个错误
curl_setopt($ic, CURLOPT_POSTFIELDS, http_build_query($data));