Navdeep Jangra
Navdeep Jangra

Reputation: 23

How to access curl post data in a rest api in codeigniter?

I want to post data from the Codeigniter controller using curl to API. I'm not able to access the post data in API. Here's my CURL code. ...

     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));
}

}

...

and this is how I'm accessing it in the 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');

...

But, I can easily access the post data in API from postman using the same method $this->input->get('skills');.

Upvotes: 1

Views: 4653

Answers (1)

SPS
SPS

Reputation: 126

Remove Json Header $headers = array( 'Content-Type:application/json' );

and post data directly without json_encode curl_setopt($ch,CURLOPT_POSTFIELDS, $fields);

Upvotes: 3

Related Questions