Comment publier des données JSON avec PHP Curl

Comment publier des données JSON avec PHP Curl

Lorsque vous travaillez avec des API, il est courant d'envoyer et de recevoir des données au format JSON. Dans PHP, vous pouvez utiliser la bibliothèque Curl pour envoyer des demandes HTTP, y compris l'envoi de données JSON dans une demande de poste. Dans cet article, nous vous montrerons comment publier des données JSON avec PHP Curl dans un guide étape par étape.

Étape 1: Définissez les données URL et JSON

La première étape consiste à définir l'URL à laquelle vous souhaitez envoyer la demande et les données JSON que vous souhaitez envoyer dans le corps de la demande. Pour cet exemple, nous utiliserons un exemple de données JSON:

$ data = array ('name' => 'John Doe', 'Email' => 'John.DOE @ Exemple.com ',' téléphone '=>' 1234567890 '); $ json = json_encode ($ data);
1234567$ data = array ('name' => 'John Doe', 'e-mail' => '[e-mail protégé]', 'téléphone' => '1234567890'); $ json = json_encode ($ data);

Dans cet exemple, nous avons créé un tableau de données et l'avons codée dans un Json chaîne en utilisant le json_encode () fonction.

Étape 2: Définissez les options de curl

L'étape suivante consiste à définir les options de curl pour la demande, y compris l'URL, la méthode de demande et le corps de demande. Voici un exemple de la façon de définir les options de curl:

$ url = 'https: // exemple.com / api / create '; $ ch = curl_init ($ url); curl_setopt ($ ch, curlopt_returntransfer, true); curl_setopt ($ ch, curlopt_customrequest, "post"); curl_setopt ($ ch, curlopt_postfields, $ json); curl_setopt ($ ch, curlopt_httpheader, array ('contenu-type: application / json', 'contenu-longueur:' . strlen ($ json)));
12345678910$ url = 'https: // exemple.com / api / create '; $ ch = curl_init ($ url); curl_setopt ($ ch, curlopt_returntransfer, true); curl_setopt ($ ch, curlopt_customrequest, "post"); curl_setopt ($ ch, curlopt_postFields, $ json); curl_setopt ($ ch, curLopt_httheder, array ('contenu-type: application / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon) ',' Content-Length: ' . strlen ($ json)));

Dans cet exemple, nous avons défini les options suivantes:

  • Curlopt_returntransfer: Définir TRUE pour renvoyer la réponse en tant que chaîne au lieu de la diffuser directement sur l'écran.
  • Curlopt_customrequest: Réglé sur «publier» pour spécifier que nous envoyons une demande de poste.
  • Curlopt_postfields: Définir sur les données JSON que nous souhaitons envoyer dans le corps de la demande.
  • Curlopt_httpheader: Réglé sur une gamme d'en-têtes, y compris l'en-tête de type contenu pour spécifier que nous envoyons des données JSON, et l'en-tête du contenu pour spécifier la longueur des données JSON.

Étape 3: Envoyez la demande et gérez la réponse

La dernière étape consiste à envoyer la demande en utilisant le curl_exec () fonction et gérer la réponse. Voici un exemple de la façon de procéder:

$ réponse = curl_exec ($ ch); if (curl_errno ($ ch)) echo 'error:' . curl_error ($ ch); else echo $ réponse; curl_close ($ ch);
1234567$ réponse = curl_exec ($ ch); if (curl_errno ($ ch)) echo 'error:' . curl_error ($ ch); else echo $ réponse; curl_close ($ ch);

Dans cet exemple, nous avons utilisé le curl_exec () fonction pour envoyer la demande et stocker la réponse dans la variable de réponse $. Nous avons également vérifié toutes les erreurs en utilisant le curl_errno () fonction et affiché le message d'erreur s'il y avait une erreur. Enfin, nous avons fermé la poignée de boucle en utilisant le curl_close () fonction.

Étape 4: Compléter le script PHP

Après avoir combiné le code ci-dessus, vous obtiendrez un script PHP fonctionnel complet qui peut publier des données JSON aux API distantes.

'John Doe', 'Email' => 'John.DOE @ Exemple.com ',' téléphone '=>' 1234567890 '); $ json = json_encode ($ data); $ url = 'https: // exemple.com / api / create '; $ ch = curl_init ($ url); curl_setopt ($ ch, curlopt_returntransfer, true); curl_setopt ($ ch, curlopt_customrequest, "post"); curl_setopt ($ ch, curlopt_postfields, $ json); curl_setopt ($ ch, curlopt_httpheader, array ('contenu-type: application / json', 'contenu-longueur:' . strlen ($ json))); $ réponse = curl_exec ($ ch); if (curl_errno ($ ch)) echo 'error:' . curl_error ($ ch); else echo $ réponse; curl_close ($ ch); ?>
1234567891011121314151617181920212223242526272829 'John Doe', 'Email' => '[e-mail protégé]', 'téléphone' => '1234567890'); $ json = json_encode ($ data); $ url = 'https: // exemple.com / api / create '; $ ch = curl_init ($ url); curl_setopt ($ ch, curlopt_returntransfer, true); curl_setopt ($ ch, curlopt_customrequest, "post"); curl_setopt ($ ch, curlopt_postFields, $ json); curl_setopt ($ ch, curLopt_httheder, array ('contenu-type: application / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon / jon) ',' Content-Length: ' . strlen ($ json))); $ réponse = curl_exec ($ ch); if (curl_errno ($ ch)) echo 'error:' . curl_error ($ ch); else echo $ réponse; curl_close ($ ch); ?>

Enregistrez le contenu du fichier et exécutez-le via l'interface de ligne de commande PHP.

Conclusion

Dans cet article, nous vous avons montré comment publier des données JSON avec PHP Curl dans un guide étape par étape. En définissant les données URL et JSON, en définissant les options de curl et en envoyant la demande et en gérant la réponse, vous pouvez facilement envoyer des données JSON dans une demande postale à l'aide de PHP Curl.