web-dev-qa-db-ja.com

curlで生の身体データを投稿する方法は?

これを複製として投稿する前に; SOで見つけた提案の多くを試しました。

これまで、私はpostmanを使用してJava Webサービスにデータを投稿してきました。次のようにうまく機能します。

enter image description here

カールを使用して同じことをしたいので、次の方法で試しました:

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

残念ながら、それらはすべて受信側で空の未加工のボディを示しています。

私がここで間違っていることを誰か知っていますか?カールリクエストは郵便配達員のリクエストとどう違うのですか?すべてのヒントを歓迎します!

38
kramer65

curlの--dataはデフォルトでContent-Type: application/x-www-form-urlencodedをリクエストヘッダーで送信します。ただし、Postmanのraw bodyモードを使用する場合、Postmanは要求ヘッダーでContent-Type: text/plainを送信します。

したがって、Postmanと同じことを実現するには、curlに-H "Content-Type: text/plain"を指定します。

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

Postmanによって送信された完全なリクエストを確認したい場合は、パックアプリのデバッグを有効にすることができます。すべての手順については、 このリンク を確認してください。次に、アプリを調べ(Postmanで右クリック)、Postmanから送信されたすべてのリクエストをnetworkタブで表示できます。

enter image description here

49
Bertrand Martel