api 休息 CI 3

api rest on CI 3

我无法开始工作API休息以检查许可证运行状况。

api.php(受控)

<?php
   
   require APPPATH . '/libraries/REST_Controller.php';
   use Restserver\Libraries\REST_Controller;
     
class Inmobiapi extends REST_Controller {
    
      /**
     * Get All Data from this method.
     *
     * @return Response
    */
    public function __construct() {
       parent::__construct();
       $this->load->database();
    }
       
    /**
     * Get All Data from this method.
     *
     * @return Response
    */
    public function index_post()
    {
        $licencia=$this->input->post('licencia');
        if($licencia){
            $data = $this->db->get_where("clientes", ['licencia' => $licencia,'status'=>'Active'])->row_array();
        }else{
            $this->response(NULL, 404);
        }
     
        $this->response($data, REST_Controller::HTTP_OK);
    }      
        
}

检查许可证的功能,这是一个帮手。

function verificar_licencia($licencia){
    $curl_handle = curl_init();
    curl_setopt($curl_handle, CURLOPT_URL, 'URL_TO_API');
    curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $licencia);
                
    $buffer = curl_exec($curl_handle);
    curl_close($curl_handle);
    
    $result = json_decode($buffer);

    if(isset($result))
    {
        return $result;
    }
    
    else
    {
        return FALSE;
    }
}

return 总是给我 FALSE。 api 文件托管在具有不同 CI3 安装但在 rest.php

上具有相同配置的其他域

未启用身份验证,因此任何人都可以访问(我只是在测试)。

有人可以指导我吗? 谢谢

我假设您有一个有效的 'URL_TO_API' 值。检查您的 CURL 选项。如果您没有从调用中获得结果并且您的 URL 有效且正常运行,则您的 curl_setopt 调用可能缺少或设置了(或未设置)不正确的属性。

例如,在我最近的项目中,我的 curl 选项必须设置如下:

    curl_setopt_array($curl, [
        CURLOPT_URL => 'https://path/to/endpoint'
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_VERBOSE => 1,
        CURLOPT_NOBODY => 1,
        CURLOPT_MAXREDIRS => 1,
        CURLOPT_POST => 1,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_HTTPHEADER => []
    ]);

您可能会有所不同,具体取决于:

  • 您想通过通话实现什么。
  • 端点需要您设置什么 - 请参阅您的端点文档。