Maison >développement back-end >tutoriel php >Comment POSTER correctement des données JSON à l'aide de PHP cURL ?

Comment POSTER correctement des données JSON à l'aide de PHP cURL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-23 12:52:16520parcourir

How to Correctly POST JSON Data Using PHP cURL?

Comment POSTER des données JSON avec PHP cURL ?

Cette question aborde le problème de la publication de données JSON à l'aide de la bibliothèque cURL de PHP. L'utilisateur fournit un extrait de code visant à envoyer des données POST vers une URL spécifique. Cependant, le code ne parvient pas à récupérer les données publiées sur la page de réception, ce qui entraîne un tableau vide.

Détails du problème

Le problème réside dans la manière incorrecte dont les données JSON sont publiées. De plus, le code utilise print_r($_POST) pour récupérer les données postées, ce qui n'est pas la méthode recommandée.

Solution

Pour poster correctement les données JSON à l'aide de cURL, il est essentiel de s'assurer que les données sont correctement codées en JSON. Dans l'extrait de code donné, seule la valeur du champ POST « client » est codée en JSON. Au lieu de cela, l'intégralité des données POST doit être codée en JSON.

De plus, pour récupérer les données publiées sur la page de réception, vous pouvez utiliser la fonction file_get_contents("php://input"), qui contiendra le publié des données JSON.

Exemple de code

Voici un exemple de la façon de publier correctement des données JSON avec PHP cURL :

<?php

$url = 'url_to_post';

$data = [
    "first_name" => "First name",
    "last_name" => "last name",
    "email" => "email@example.com",
    "addresses" => [
        "address1" => "some address",
        "city" => "city",
        "country" => "CA",
        "first_name" => "Mother",
        "last_name" => "Lastnameson",
        "phone" => "555-1212",
        "province" => "ON",
        "zip" => "123 ABC",
    ],
];

$data_string = json_encode($data);

$ch = curl_init($url);
# Setup request to send json via POST.
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:application/json']);
# Return response instead of printing.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Send request.
$result = curl_exec($ch);
curl_close($ch);

# Print response.
echo "<pre class="brush:php;toolbar:false">$result
"; ?>

Remarque

De plus, l'utilisateur exprime son intention d'implémenter REST en utilisant JSON conformément aux spécifications de l'API de Shopify. Il convient de mentionner que l'utilisation d'une bibliothèque tierce spécialement conçue pour s'interfacer avec l'API Shopify est fortement recommandée car elle peut simplifier le processus et réduire les erreurs potentielles.

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