如何在 codeigniter 的 rest api 中访问 c​​url post 数据?

我想使用 curl 将来自 Codeigniter 控制器的数据发布到 API。我无法访问 API 中的帖子数据。这是我的 CURL 代码。...


     class SearchJobs extends CI_Controller {



public function index()

{   

    $headers = array(


        'Content-Type:application/json'


    );


    $fields=$this->input->post();

    /////////////////////get jobs/////////////////


    $api_path=API_PATH."index.php/searchJobs/getJobs";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $api_path);

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

    curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($fields));

    $featuredJobs = curl_exec($ch);



      if(curl_errno($ch)) {    

          echo 'Curl error: ' . curl_error($ch);  


          exit();  

      } else {    

          // check the HTTP status code of the request

            $resultStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);

            if ($resultStatus != 200) {

                echo stripslashes($featuredJobs);

                die('Request failed: HTTP status code: ' . $resultStatus);


            }

         $featured_jobs_array=(array)json_decode($featuredJobs);

         print_r($featured_jobs_array);

         exit();

      } 



    $this->load->view('searchjobs/index',array('featuredJobs'=>$featured_jobs_array));

}

}


...


这就是我在 API 中访问它的方式:


...


 public function getJobs_post()

{   

    $data_array=array();

    $res_array=array();

    $pageNo = $this->input->get('pageNo');


    $where = ' j.isActive="y" and isApproved=1  ';


    $posted_skills=$this->input->get('skills');


    $locations=$this->input->get('location');

...


但是,我可以使用相同的方法从邮递员轻松访问 API 中的发布数据$this->input->get('skills');。


开满天机
浏览 98回答 1
1回答

泛舟湖上清波郎朗

删除 Json 标头 $headers = array( 'Content-Type:application/json' );并 在没有 json_encode 的情况下直接发布数据 curl_setopt($ch,CURLOPT_POSTFIELDS, $fields);
打开App,查看更多内容
随时随地看视频慕课网APP