In CodeIgniter, you can handle HTTP requests and responses within your controllers. Here's a guide on how to handle HTTP requests and responses:
Handling HTTP Requests:
-
Accessing Request Data:
- Use CodeIgniter's input class to access request data such as GET, POST, PUT, DELETE parameters.
- Example:
// Getting POST data $post_data = $this->input->post(); // Getting GET data $get_data = $this->input->get(); // Getting PUT data (via PHP input stream) parse_str(file_get_contents("php://input"), $put_data); // Getting DELETE data (similar to PUT) -
Determining Request Method:
- Use the
method()method of the input class to determine the HTTP request method. - Example:
$http_method = $this->input->method(); - Use the
Handling HTTP Responses:
-
Setting Response Headers:
- Use CodeIgniter's output class to set HTTP response headers.
- Example:
$this->output->set_content_type('application/json'); -
Returning JSON Response:
- Use
json_encode()to encode data as JSON and set it as the response. - Example:
$data = array('key' => 'value'); $json_response = json_encode($data); $this->output->set_output($json_response); - Use
-
Returning HTML Response:
- Use CodeIgniter's view loading mechanism to load and display HTML views as responses.
- Example:
$this->load->view('my_view', $data); -
Returning Other Types of Responses:
- Use appropriate methods of the output class to set the response content type and output data accordingly.
- Example:
$this->output->set_content_type('text/plain')->set_output('Hello, World!');
Example Controller Method:
public function handle_request() {
// Determine HTTP method
$http_method = $this->input->method();
// Handle different HTTP methods
switch ($http_method) {
case 'get':
// Handle GET request
break;
case 'post':
// Handle POST request
break;
case 'put':
// Handle PUT request
break;
case 'delete':
// Handle DELETE request
break;
default:
// Handle unsupported request
break;
}
// Set response content type and output data
$this->output
->set_content_type('application/json')
->set_output(json_encode($response_data));
}

Comments