Maison >développement back-end >tutoriel php >Comment formater correctement CURLOPT_POSTFIELDS dans les requêtes cURL POST ?
CURLOPT_POSTFIELDS dans Curl pour les requêtes POST
Lors de l'utilisation de curl pour effectuer une requête POST et de la spécification de l'option CURLOPT_POSTFIELDS, il est crucial de prendre en compte le format approprié. Par exemple, envisagez de publier deux champs, "premier" et "dernier" :
"first=John&last=Smith"
Formatage de chaîne
Si En envoyant une chaîne en tant que données POST, elle doit être codée en URL pour garantir un codage de caractères correct. Le code suivant le démontre :
$data = urlencode("first=John&last=Smith");
Formatage du tableau
Cependant, si les données POST sont un tableau, elles doivent suivre la "clé => valeur" format :
$data = [ 'first' => 'John', 'last' => 'Smith' ];
Dans ce cas, curl définira automatiquement l'en-tête Content-Type sur "multipart/form-data".
En-tête Content-Type
La définition explicite de l'en-tête Content-Type est recommandée pour une meilleure compatibilité. Par exemple, pour le définir sur "application/json":
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
Utilisation de http_build_query()
Alternativement, au lieu de créer manuellement la chaîne de requête, http_build_query de PHP () peut être utilisée :
$query = http_build_query($data, '', '&'); curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
Cette fonction gère le codage URL et le bon clé = formatage de valeur de manière transparente.
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!