この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
http アクセスを行うコマンドラインツールは telnet, wget, lynx, w3m などあるがリクエスト結果をそのまま標準出力したい場合は curl コマンドが便利かと思っている。ファイルを POST するのも簡単だったので備忘の為、記載する。
■ 通常の使い方(bash上)
curl http://host/path/file.ext
※ ポストパラメータを渡すときは -F オプションを使う
e.g.
のようなフォームで送るパラメータ。
curl -F "param_name=param_value" curl http://host/path/file.ext
■ ファイルを送るとき
e.g.
のようなフォームで送るパラメータ。
curl -F "param_file=@file_path" curl http://host/path/file.ext
簡単でした。@マークをつけてファイルパスを指定するだけ。
■ Appendix
get パラメータを送るときの注意
? や & は bash 上で特殊文字として処理されてしまうので URL ごと引用符で囲んでしまいましょう。
curl "http://host/path/file.ext?a=1&b=2&c=3"
よく使うオプション
- -H ヘッダーを設定する。下記では名前解決できないけれど名前バーチャルホストを使用しているサーバへアクセスするときの確認に便利
- -b 送信するクッキーファイルを指定
- -c 受信するキッキーを保存するファイルを指定
- -A ユーザエージェントの書き換え:iphoneやandroidやその他で出力が異なる場合の確認に便利
- -v リクエストヘッダやレスポンスヘッダを表示
curl -v -H Host:virtual_host_name http://127.0.0.1/ -b ck0.txt -c ck1.txt -A "oreore_ua"