How to send a post request to the RESTserver api in php-Codeigniter?

22,160

Finally I came up with a solution, I used PHP cURL to send a post request to my RESTserver.

Here is my RESTclient POST request

 $data = array(
            'patient_id'      => '1',
            'department_name' => 'a',
            'patient_type'    => 'b'
    );

    $data_string = json_encode($data);

    $curl = curl_init('http://localhost/patient-portal/api/patient/visit');

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

    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string))
    );

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  // Make it so the data coming back is put into a string
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);  // Insert the data

    // Send the request
    $result = curl_exec($curl);

    // Free up the resources $curl is using
    curl_close($curl);

    echo $result;
Share:
22,160

Related videos on Youtube

Madhu
Author by

Madhu

Here to ask loads of questions and clear my doubts!!

Updated on July 31, 2020

Comments

  • Madhu
    Madhu almost 4 years

    I've been trying to make a POST request in my CodeIgniter RestClient controller to insert data in my RestServer, but seems like my POST request is wrong.

    Here is my RestClient POST request in controller:

    $method = 'post';
    $params = array('patient_id'      => '1',
                    'department_name' => 'a',
                    'patient_type'    => 'b');
    $uri = 'patient/visit';
    $this->rest->format('application/json');
    $result = $this->rest->{$method}($uri, $params);
    

    This is my RestServer's controller: patient

    function visit_post()
    {
        $insertdata=array('patient_id'      => $this->post('patient_id'),
                          'department_name' => $this->post('department_name'),
                          'patient_type'    => $this->post('patient_type') );
    
        $result = $this->user_model->insertVisit($insertdata);
    
        if($result === FALSE)
        {
            $this->response(array('status' => 'failed'));
        }
        else
        {
            $this->response(array('status' => 'success'));
        }
    }
    

    This is user_model

    public function insertVisit($insertdata)
    {
       $this->db->insert('visit',$insertdata);
    }