使用 cURL 作为客户端和 CodeIgniter Rest Server 进行一些测试。GET、POST 和 DELETE 方法可以完美运行,但不能 PUT。
这是我的 PUT 客户端代码。它与 POST 相同(CURLOPT_CUSTOMREQUEST 除外):
<?php
/**
* Keys
*/
include('inc/keys.inc.php');
/**
* Data sent
*/
$content = array(
'name' => 'syl',
'email' => 'some@email.it'
);
/**
* Source
*/
$source = 'http://localhost/test-rest-api-v2/api_apps/app/id/1';
/**
* Init cURL
*/
$handle = curl_init($source);
/**
* Headers
*/
$headers = array(
'X-API-Key: '. $public_key
);
/**
* Options
*/
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
/**
* For POST
*/
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, $content);
/**
* Result
*/
$result = curl_exec($handle);
/**
* Close handle
*/
curl_close($handle);
echo $result;
?>
我还尝试添加到标题:'Content-Type: application/x-www-form-urlencoded',
. 结果相同。
我的服务器代码:
<?php
function app_put() {
var_dump($this->put());
}
?>
结果:
数组(1){ [“------------------1f1e080c85df 内容处置:_form-data;_name”]= > string(174) ""name" syl ------------------------------1f1e080c85df 内容配置:表单数据;名称="email" some@email.it ------------------------------1f1e080c85df-- " }
PUT 方法有什么问题?