web-dev-qa-db-de.com

Wie poste ich rohe Körperdaten mit Curl?

Bevor Sie dies als Duplikat posten; Ich habe viele der Vorschläge ausprobiert, die ich in SO gefunden habe.

Bisher habe ich Briefträger verwendet, um Daten an einen Java Webdienst zu senden. Das funktioniert wie folgt:

enter image description here

Ich möchte jetzt dasselbe mit Locken machen, also habe ich es mit den folgenden Methoden versucht:

$ 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/

Leider weisen alle einen leeren Rohkörper auf der Empfangsseite auf.

Weiß jemand, was ich hier falsch mache? Inwiefern unterscheidet sich meine Curl-Anfrage von meiner Postbotenanfrage? Alle Tipps sind willkommen!

38
kramer65

curls --data sendet standardmäßig Content-Type: application/x-www-form-urlencoded in den Anforderungsheader. Wenn Postman jedoch den Body-Modus raw verwendet, sendet Postman Content-Type: text/plain Im Anforderungsheader.

Um dasselbe wie bei Postman zu erreichen, geben Sie -H "Content-Type: text/plain" Für curl an:

curl -X POST -H "Content-Type: text/plain" --data "this is raw data" http://78.41.xx.xx:7778/

Beachten Sie, dass Sie das Debuggen für gepackte Apps aktivieren können, wenn Sie die vollständige von Postman gesendete Anforderung anzeigen möchten. Überprüfen Sie dieser Link für alle Anweisungen. Anschließend können Sie die App überprüfen (mit der rechten Maustaste in Postman klicken) und alle von Postman gesendeten Anforderungen auf der Registerkarte network anzeigen:

enter image description here

49
Bertrand Martel