您有任何使用Phil Sturgeons RESTFUL库进行codeigniter的经验。我决定为我们的数据库创建一个Web服务,以便从多个应用程序提供对数据库的访问。该网站目前在Codeigniter中开发,因此它是使用其余API库的简单解决方案。
我遇到的问题是我试图在出现问题时返回特定错误。
目前我故意回复错误:
require(APPPATH . 'libraries/REST_Controller.php');
class Settings_api extends REST_Controller {
function settings_get()
{
$this->response(NULL, 404);
}
}
如果我直接访问url然后我只是收到一个空白页面,如果我用消息替换'NULL',我可以返回一条消息,但没有什么可以说它是404错误而如果我通过php使用以下
$user = json_decode(file_get_contents('http://www.example.co.uk/api/settings_api/settings/'));
echo $user;
然后它显示以下行
Message: file_get_contents(http://www.example.co.uk/api/settings_api/settings/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404
在这两种情况下,我都希望返回404错误以及我提供的消息。这是否可能,如果是这样,你能指出我正确的方向。
由于
答案 0 :(得分:2)
由PHP生成的错误消息,据我所知,你无能为力(除了使用@
运算符,我不推荐)。因此,您唯一的选择是手动检查file_get_content()
的返回值:
$response = file_get_contents('http://...');
if ($response === false) {
// return whatever you feel is appropriate
} else {
$user = json_decode($response);
echo $user;
}
修改强>
在Stackoverflow上找到了这个answer here,这就是你要找的东西。