2014-12-12 12 views
6

Ich habe versucht, eine POST-Anfrage in meinem CodeIgniter-RestClient-Controller zu machen, um Daten in meinen RestServer einzufügen, aber scheint, dass meine POST-Anfrage falsch ist.Wie sende ich eine Post-Anfrage an den RESTserver api in php-Codeigniter?

Hier ist meine RestClient POST-Anfrage in der Steuerung:

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

Dieser Controller mein RestServer lautet: Patienten

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

Dies ist user_model

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

Sie bitte Ihre Frage spezifizieren. Was funktioniert nicht, was ist der Fehler etc ... – Kyslik

+0

@Kyslik Ich habe versucht, eine POST-Anfrage in meinem CodeIgniter RestClient-Controller zum Einfügen von Daten in meinem CodeIgniter RestServer, aber es fügt nie Daten in meiner Datenbank. – Madhu

+0

Erhalten Sie den Wert von $ this -> response? Wenn ja, könnten Sie den Beitrag ausgeben. '$ this-> Antwort (Array ($ _ POST))' – Linesofcode

Antwort

6

schließlich mit einer Lösung bis ich kam, habe ich PHP cURL einen Beitrag Anfrage an meine RESTserver zu senden.

Hier ist meine RESTclient POST-Anfrage

$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; 
+0

[link] http://www.lornajane.net/posts/2011/posting-json-data-with-php-curl – Madhu

0

können Sie Ihren Code debuggen. Versuchen Sie die globale Variable $ _POST zu drucken. und ich denke, das ist Ihr Problem $this->input->post nur lösen kann anstelle von statt $this->post

Verwandte Themen