codeigniter CI 3的API剩余值

l0oc07j2  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(106)

我无法获取工作API rest以检查许可证运行状况。
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;
    }
}

返回的给予总是FALSE。api文件位于另一个域中,在两个rest.php上有不同的CI3安装,但配置相同
身份验证未启用,因此任何人都可以访问(我只是测试)。
有人能给我带路吗?谢谢。

j0pj023g

j0pj023g1#

我假设您有一个有效的'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 => []
    ]);

您的情况可能有所不同,具体取决于:

  • 您希望通过电话实现的目标。
  • 端点需要您设定的项目-请参阅您的端点文件。

相关问题