Я пытаюсь сделать запрос POST в моем контроллере CodeIgniter RestClient для вставки данных в мой RestServer, но похоже, что мой запрос POST неверен.
Вот мой запрос POST-запроса RestClient в контроллере:
$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);
Это мой контроллер RestServer: пациент
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')); } }
Это user_model
public function insertVisit($insertdata) { $this->db->insert('visit',$insertdata); }
Наконец, я придумал решение, я использовал PHP cURL для отправки запроса на отправку на мой RESTserver.
Вот мой запрос POST RESTclient
$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;
вы можете отлаживать свой код. попробуйте напечатать глобальную переменную $ _POST. и я думаю, что это может решить вашу проблему, просто используйте $this->input->post
вместо вместо этого $this->post