0

嗨,有任何人有使用 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 错误以及我提供的消息。这可能吗?如果可以,您能否指出我正确的方向。

谢谢

4

1 回答 1

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 上
找到了这个答案。

于 2013-01-13T11:11:30.183 回答