Avant de poster ceci comme un duplicata; J'ai essayé plusieurs des suggestions que j'ai trouvées autour de SO.
Jusqu'ici, j'utilisais postman pour publier des données sur un service Web Java. Cela fonctionne très bien comme suit:
Je veux maintenant faire la même chose en utilisant curl, alors je l'ai essayé en utilisant les méthodes suivantes:
$ curl -X POST --data "this is raw data" http://78.41.xx.xx:7778/
$ curl -X POST --data-binary "this is raw data" http://78.41.xx.xx:7778/
$ curl -X POST --data "@/home/kramer65/afile.txt" http://78.41.xx.xx:7778/
$ curl -X POST --data-binary "@/home/kramer65/afile.txt" http://78.41.xx.xx:7778/
Malheureusement, tous montrent un corps brut vide du côté récepteur.
Est-ce que quelqu'un sait ce que je fais mal ici? En quoi ma demande de virement est-elle différente de ma demande de facteur? Tous les conseils sont les bienvenus!
--data
de curl enverra par défaut Content-Type: application/x-www-form-urlencoded
dans l'en-tête de la demande. Toutefois, lors de l'utilisation du mode body raw
de Postman, Postman envoie Content-Type: text/plain
dans l'en-tête de la requête.
Donc, pour obtenir la même chose que Postman, spécifiez -H "Content-Type: text/plain"
pour curl:
curl -X POST -H "Content-Type: text/plain" --data "this is raw data" http://78.41.xx.xx:7778/
Notez que si vous souhaitez consulter la demande complète envoyée par Postman, vous pouvez activer le débogage pour une application compactée. Vérifiez ce lien pour toutes les instructions. Ensuite, vous pouvez inspecter l'application (clic droit dans Postman) et afficher toutes les demandes envoyées par Postman dans l'onglet network
: