3DプリンタとITとプリキュアのブログ

大学でプログラミングに出会って、ズブズブにハマってしまった情報系学生の書くブログです。

毎回忘れるcurlのオプションまとめ

curlのオプションを何回調べても覚えられないので、自分用の備忘録として書き留めておきます。

 

メソッドの指定

Xオプションです。

$ curl -X POST http://hoge.com

 

ヘッダの指定

Hオプションです。Hオプションは複数回指定できます。

$ curl -H 'Authoriaztion:key=aaaabbbbccccdddd' http://hoge.com

 

ボディの指定

ボディの指定はdオプションでできますが、何種類かやり方があります。

どうせJSONを投げたいんだと思うので、このうちのどれかで対応できるはずです。

コマンドラインオプションで指定

そのままベタ書きするといけます。一番オーソドックスなやつです。

$ curl -X POST -H 'Content-Type:application/json; UTF-8' -d '{"id":"0123456789"}' http://hoge.com

 

ファイルで指定

ファイルに書き込まれたJSONを投げたいときはファイル名の前に@をつけると良いです。

$ cat body.json
{"id":"0123456789"}
$ curl -X POST -H 'Content-Type:application/json; UTF-8' -d @body.json http://hoge.com

 

パイプで繋いで指定

これ知らなかったんですけど、パイプから繋いで指定することもできるっぽいです。

$ echo '{"id":"0123456789"}' | curl -X POST -H 'Content-Type:application/json; UTF-8' -d @- http://hoge.com

 

ダンプ

色々ダンプしたい情報ごとに指定するオプションがたくさんあるんですけど、とりあえずtrace-asciiオプションで大体全部出せます。

$ curl --trace-ascii http://hoge.com

 

まとめ

多分ここを見ればこの記事タイトルから知りたかったことが全て理解できると思います。

$ cat body.json
{"id":"0123456789"}
$ curl -X POST -H 'Content-Type:application/json; UTF-8' -d @body.json --trace-ascii http://hoge.com