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