json — Как отправить почтовый запрос в API RESTserver в php-Codeigniter?

Я пытался сделать 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);
}

6

Решение

Наконец, я нашел решение и использовал PHP cURL для отправки запроса на мой RESTserver.

Вот мой запрос PESTclient POST

 $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;
9

Другие решения

Вы можете отладить свой код. попробуй распечатать глобальную переменную $ _POST.
и я думаю, что это может решить вашу проблему
просто используйте $this->input->post вместо
вместо $this->post

0

По вопросам рекламы [email protected]