Maison >développement back-end >tutoriel php >Comment formater correctement CURLOPT_POSTFIELDS dans les requêtes cURL POST ?

Comment formater correctement CURLOPT_POSTFIELDS dans les requêtes cURL POST ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 07:08:09901parcourir

How to Properly Format CURLOPT_POSTFIELDS in cURL POST Requests?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn