在CodeIgniter中,使用HTTP協議來傳遞數據非常方便,可以通過post方式發送數據并且也可以直接發送json數據。這里我們重點介紹一下如何通過post方式發送json數據。
首先在controller中,需要使用CodeIgniter的input類來獲得post提交的數據。具體操作可以參考下面的代碼:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata);
以上代碼中,$postdata是一個字符串,可以通過file_get_contents函數來獲取HTTP請求中的數據。然后使用json_decode函數將$postdata轉換成一個對象或者數組。
接下來,我們就可以對$request進行處理,比如對其中的某些字段進行校驗、對數據庫進行操作等等。最后返回處理結果即可。
當然,在發送post請求時,需要在請求頭中添加Content-Type,比如application/json,告訴服務器發送的是json格式的數據。例如:
$url = "http://example.com/api"; $data = array("name" =>"John", "age" =>30); $json_data = json_encode($data); $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($json_data)) ); $result = curl_exec($ch); curl_close($ch);
以上代碼中,通過curl庫發送了一個post請求,并且請求頭中添加了Content-Type和Content-Length頭信息。
總結來說,通過CodeIgniter發送post方式的json數據十分簡單,只需要在controller中使用input類獲得數據即可。在發送post請求時,需要注意請求頭中的Content-Type。