2017-05-04 6 views
0

J'essaye de POST dans une API que j'ai faite, et je la teste en utilisant Postman. Je reçois une erreur 400 Bad Request en réponse avec le message Invalid JSON message received.Message JSON non valide reçu

Ceci est un exemple de retour de l'enregistrement à l'utilisateur utilisant GET.

{ 
    "id":3, 
    "title":"Radio Etiquette Book", 
    "summary":"This book provides advice on how to present a radio programme with flair.", 
    "timestamp":"2016-12-22T18:18:20+0000", 
    "author":{"id":1,...***}, 
    "reviews": 
} 

Je suppose que le problème est avec author car author contient des champs sous, comme l'ID, nom d'utilisateur, mot de passe et des sous-classes appelées entries (livres créés par cet auteur) et reviews (commentaires écrits par cet auteur).

Comment puis-je POSTER une nouvelle entrée pour éviter une erreur 400 Bad Request? Je ne suis pas sûr de savoir quelle valeur il est, que je poste mal, mais de débattre pour savoir s'il est réellement auteur, et comment il devrait être entré.

+0

Pouvez-vous afficher le code API? Ou fournissez l'URL de l'API. – wannadream

+2

Le champ "avis" pourrait également être le problème, car il n'y a aucune valeur pour cela dans l'exemple donné –

+0

Quelles parties du code que vous aimeriez voir? L'URL de l'API est locale, c'est-à-dire 'website.app/api/v1/books', donc probablement pas d'utilisation. Je pense que je poste sur la bonne URL si. – kamil1995b

Répondre

1

Vous pouvez utiliser un site tel que JSONLint pour vérifier si le JSON que vous essayez d'envoyer est correctement formaté. Il devrait être capable de vous montrer la ligne de l'erreur et pourquoi il pourrait ne pas correspondre à la spécification JSON.

link to JSONLint

+0

Si cela ne vous aide pas, envoyez-nous le message d'erreur que vous obtenez, formez le fichier error.log. L'erreur 400 peut avoir plusieurs causes. – Torsten

+0

Ok, super. Donc cela a fonctionné après avoir utilisé JSONLint '{" title ":" Bonjour tout le monde "," book ":" foo "}' (je ne passais pas une application/json header) mais je n'ai que 201 dans Postman. Dois-je obtenir quelque chose de plus comme une réponse JSON dans la fenêtre? – kamil1995b

+0

La réponse 201 signifie que la demande a été satisfaite et que la ressource a été créée avec succès. – Vonhaven