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