Lors de l'utilisation de curl en PHP pour interagir avec une API REST, les données JSON peuvent être transmises via trois méthodes de requête HTTP courantes : PUT, POST et GET. Cet article fournit un guide détaillé sur la manière de réaliser efficacement ces transferts de données.
Pour effectuer une requête PUT avec une charge utile JSON, suivez ces étapes :
$data = array('username' => 'dog', 'password' => 'tall'); $data_json = json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json))); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
Pour une requête POST avec des données JSON, utilisez ceci code :
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
Comme indiqué dans la réponse de @Dan H, vous pouvez incorporer des données JSON dans une requête GET en les ajoutant à l'URL sous forme de chaîne de requête :
$url .= '?data=' . urlencode(json_encode($data)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!