Comment faire pour publier des données à l'aide de curl et obtenir de reponse basés sur les données publiées
Voici mon code pour POST
de données:
<?php
$data = array("account" => "1234", "dob" => "30051987", "site" => "mytestsite.com");
$data_string = json_encode($data);
$url = 'http://mydomain.com/curl.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
curl_close($ch);
$json_result = json_decode($result, true);
?>
<p>Your confirmation number is: <strong><?php echo $json_result['ConfirmationCode']; ?></strong></p>
Alors que sur le domaine/serveur curl.php fichier de code suivante:
<?php
//header
header("content-type: application/json");
if($_POST):
echo json_encode(array('ConfirmationCode' => 'somecode'));
else:
echo json_encode(array('ConfirmationCode' => 'none'));
endif;
?>
Mais il y a toujours le retour 'none'
. Ai-je raté quelque chose?
OriginalL'auteur atif | 2013-03-13
Vous devez vous connecter pour publier un commentaire.
Le problème réel est en la saisissant..
votre code pour curl.php
Depuis que Vous êtes à l'envoi des données brutes de JSON dans le corps, il ne pourra pas remplir le $_POST variable
Espère que cela va vous aider à
J'ai édité mon code.. Son travail maintenant ..
oui, il fonctionne, mais comment vérifier si les données sont affichées ou comment aurais-je varify les données publiées? Comme compte et les paramètres du site, etc ?
ok, je suis de la modification de code pour une fois de plus.. un coup d'oeil.Vous pouvez utiliser print_r($rawData) dans curl.php et puis l'écho de la boucle résultat dans votre fichier principal
ont u essayé ce .. ?
OriginalL'auteur alwaysLearn
La fonction sur ce lien fonctionne.
Alors que, sur
curl.php
OriginalL'auteur atif
La "bonne"
Content-Type
en-tête pour une requête POST doit êtreapplication/x-www-form-urlencoded
, mais vous l'a remplacée avecapplication/json
(ce qui est nécessaire à partir du côté serveur).Modifier votre code ci-dessous:
Si votre
curl.php
est aussi simple que de poster, c'est correct (à l'exception de l'extra;
à la ligne 5).Il est encore de retour, aucun moyen, il va dans d'autre condition, et que le symbole est une faute de frappe erreur ici non pas dans le code 🙂
Essayez d'ajouter
curl_setopt($ch,CURLINFO_HEADER_OUT,true)
et puisprint_r(curl_getinfo($ch))
aprèscurl_exec
pour voir si quelque chose ne va pas. Aussiprint_r($_POST)
danscurl.php
pour vous aider à déboguer.print_r(curl_getinfo($ch)) ceci permet d'imprimer un tableau , mais print_r($_POST) imprime rien
OriginalL'auteur Passerby