2010-08-18 3 views
3

Je reçois un JSON que je peux recevoir en utilisant l'entrée php: // et je dois le renvoyer à une URL différente, mais je ne suis pas sûr de savoir comment le formater. Voici comment je reçois:Post JSON en utilisant Curl

$ updates = file_get_contents ("php: // input");

je pouvais json_decode, puis analyser le tableau afin qu'il cadrerait une requête POST comme normale, comme bonjour = monde & pile = etc débordement Mais est-il possible de passer le JSON juste dans une boucle Post comme ceci:

curl_setopt($curl_handle, CURLOPT_POST, 1); 
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $updates); 

puis le client pourrait juste php: // entrée pour saisir les données à nouveau? La raison pour laquelle je demande est parce que le client dit qu'il ne reçoit pas les données, il se peut qu'il ne l'ait pas configuré correctement. J'ai remarqué quand vous faites quelque chose comme ceci à travers une ligne de commande vous devez inclure -H dans la commande pour que les données soient interprétées comme POST normal, peut-être il y a un CURLOPT de libcurl que je dois placer?

Merci!

Répondre

1

Eh bien les gens, j'ai compris celui-ci!

Pour envoyer un message comme un autre type de contenu (par exemple .. application/JSON ou text/xml) ajouter cet appel setopt

de curl_setopt ($ ch, CURLOPT_HTTPHEADERS, array ('Content-Type : application/json '));

0

Vous pouvez également utiliser

curl --silent --request POST --header 'Content-Type: application/json' \ 
--data $updates \ 
-k http://URL_to_which_you_want_to_post