Codeigniter中的RestServer:401在视图中加载时未经授权的响应

时间:2017-09-10 18:25:16

标签: php codeigniter codeigniter-restserver

我在Chris Kacerguis的Codeigniter中使用了restserver,我用session设置了rest_auth。 当我登录时,我访问了view.php通过 file_get_contents 获取响应的页面,并且它返回401 Unauthorized。 当我在新标签中访问API的直接页面时,它会正确返回json。

view.php 正在以这种方式加载API内容:

json_decode(file_get_contents('https://example.com/api/proces/'), true);

回应:

  

遇到PHP错误

     

严重性:警告

     

消息:file_get_contents(我需要删除链接):无法打开>流:HTTP请求失败! HTTP / 1.1 401未经授权

发生了什么?

1 个答案:

答案 0 :(得分:0)

我看到您的示例网址正在使用" https"并且您的Apache / Nginx服务器可能没有正确配置以这种方式处理SSL,但它可以与浏览器中的证书一起使用。

我建议您使用curl代替。

json_decode(curl_get_contents('https://example.com/api/process/'));

从这里https://github.com/zg/curl_get_contents

当然你可以直接使用curl。

$url = 'https://example.com/api/process/';
$request = curl_init();
curl_setopt($request, CURLOPT_URL, $url);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_HEADER, false);
$data = curl_exec($request);
curl_close($request);