Learn how to send API requests using PHP's cURL extension , perfect for third-party API integrations.
๐ What Is cURL?
cURL is a powerful PHP library that allows you to connect and communicate with external servers through URLs. It supports a variety of protocols including HTTP, HTTPS, FTP, and more , making it a key tool for API integration.
๐ Example 1: Basic GET Request
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.example.com/data"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
This example fetches data from a public API and outputs the response.
๐ก๏ธ Adding Headers (Authentication)
<?php $ch = curl_init("https://api.example.com/user"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer YOUR_API_KEY", "Accept: application/json" ]); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); print_r($data); ?>
This snippet demonstrates how to include headers for APIs requiring authentication.
๐ค Example 2: POST Request with Data
<?php $data = [ "name" => "John", "email" => "[email protected]" ]; $ch = curl_init("https://api.example.com/submit"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
This example sends form data as a POST request to an API endpoint.
๐งพ Sending JSON Payloads
<?php $data = json_encode([ "username" => "demo", "password" => "secret" ]); $ch = curl_init("https://api.example.com/login"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Content-Type: application/json", "Content-Length: " . strlen($data) ]); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
This demonstrates how to send raw JSON using a POST request , a common requirement in modern APIs.
โ Error Handling
<?php $ch = curl_init("https://api.example.com/test"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if (curl_errno($ch)) { echo "cURL error: " . curl_error($ch); } else { echo $response; } curl_close($ch); ?>
Always check for errors when working with cURL to ensure robustness.