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 => []
]);
您可能会有所不同,具体取决于:
- 您想通过通话实现什么。
- 端点需要您设置什么 - 请参阅您的端点文档。
我无法开始工作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 => []
]);
您可能会有所不同,具体取决于:
- 您想通过通话实现什么。
- 端点需要您设置什么 - 请参阅您的端点文档。