Données POST JSON à l'application de rails simples avec curl
J'ai créé une simple nouvelle application rails avec le modèle d'entrée, avec des attributs title
et content
l'utilisation de l'échafaudage.
maintenant, je suis en train d'utiliser curl pour publier des données JSON (plutôt que d'utiliser le navigateur).
la suite semble fonctionner (c'est à dire correctement validées avec des données nulles):
curl --verbose --header "Accept: application/json" --header "Content-type: application/json" --request POST --data "" http://localhost:3000/entries
le code suivant ne fonctionne pas:
curl --verbose --header "Accept: application/json" --header "Content-type: application/json" --request POST --data "{'content':'I belong to AAA','title':'AAA'}" http://localhost:3000/entries
J'ai essayé de nombreuses variations. les erreurs que je reçois sont principalement hôte non trouvé ou jeton inattendu sur les données JSON.
source d'informationauteur delta2006
Vous devez vous connecter pour publier un commentaire.
Pour aller avec ce que Jonathan a dit, la Poste est maintenant l'envoi des données à la EntriesController. Maintenant, dans votre
create
action que vous avez à obtenir les données de laparams
de hachage. Je vais supposer que vous êtes faire de la railsy manière et ainsi de vous faire quelque chose comme ceci:Dans votre contrôleur
Cela dit emparer de la "participation" des données de l'params de hachage (créé par les rails pour vous) et de le passer comme paramètre d'Entrée pour initialiser un nouvel Objet. "créer" va faire un "nouveau" puis "enregistrer" pour vous en un seul appel de méthode.
J'ai couru un test et a obtenu l'erreur
MultiJson::DecodeError (743: unexpected token at '{'content':'I belong to AAA','title':'AAA'}'):
JSON nécessite des guillemets pour les clés et les chaînes, pas de guillemets simples. Essayez
--data '{"content":"I belong to AAA","title":"AAA"}'
prendre un bloc de JSON
et de les encoder, il
et ensuite utiliser curl pour poster