PHP:
Skicka en http-förfrågan
Hur gör man:
För att skicka en HTTP-begäran i PHP är cURL
en vanlig metod. Här är ett enkelt skript som gör en GET-begäran:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.example.com/data");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
if ($response) {
echo "Data received: " . $response;
} else {
echo "Request failed: " . curl_error($curl);
}
curl_close($curl);
?>
Sample Output:
Data received: {"id": 123, "name": "Alice"}
Nu ett exempel på en POST-begäran för att skicka data:
<?php
$curl = curl_init();
$data = array('id' => '123', 'name' => 'Alice');
$jsonData = json_encode($data);
curl_setopt($curl, CURLOPT_URL, "https://api.example.com/submit");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
if ($response) {
echo "Server responded: " . $response;
} else {
echo "Request failed: " . curl_error($curl);
}
curl_close($curl);
?>
Sample Output:
Server responded: {"status": "success", "message": "Data saved"}
Djupdykning:
Förhistorien börjar i 90-talet när webben växte och behovet av dynamiska begäran ökade. PHP utrustades med olika metoder för att utföra dessa begäran, där cURL
är den mest robusta.
Alternativ till cURL inkluderar file_get_contents()
för enklare GET-begäran eller mer moderna bibliotek som Guzzle
, som tillhandahåller en mer objektorienterad lösning.
När det gäller implementation är det viktigt att hantera fel korrekt, använda timeout för att undvika långa väntetider och säkerställa att data är säkert skickade, speciellt med känslig information.
Se även:
- PHP.NET cURL manual – Komplett manual för cURL i PHP.
- Guzzle documentation – Läs mer om Guzzle-biblioteket.
- REST API tutorial – För att bättre förstå REST API:er som ofta använder HTTP-begäran.