使用curl发布请求

时间:2014-12-18 08:32:20

标签: php rest post curl libcurl

我即将按照REST架构构建一个小型Web服务,并使用Slim Framework来处理路由。我定义了一个帖子路由,以便能够通过使用curl Extension从另一个服务器发送post请求来在数据库中添加用户,请求已发送,但我无法找到一种方法来获取发送的数据到在路由中定义的回调函数中处理它们。我让代码说明一切: 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;
我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

您可能已经确定了路线,如果是,您必须提供以下选项:

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

答案 1 :(得分:0)

好的我发现了,我换了一行:

curl_setopt($ic, CURLOPT_POSTFIELDS, $data);

TO:

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

然后在路线中,我使用$ _POST ['name']并且它有效。