cURLで標準入力の内容をPOSTパラメータとして連携する

たとえば、POSTパラメータで

subject=メールの件名
body=本文

を与えてあげると、その内容でメールを送信するようなスクリプトをhttpdに置いて、シェルでこれを呼ぶ。本文は標準入力の内容を使いたい。

こんな時の例。


df|curl -d subject="df status" --data-urlencode body@- http://server/api.php

dfの結果をパイプで
subjectパラメータはコマンドライン引数として与えて
bodyパラメータは 標準入力の値(@-)でurlencodeしてあげて
http://server/api.php を呼ぶ

…あ、引数 -X POST、忘れました…

body@- と打ってます。
body=@-とやると、@-の文字そのものが渡されました。

コメント