ホーム DoRuby curl でファイルを送る

curl でファイルを送る

この記事はアピリッツの技術ブログ「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"
記事を共有

最近人気な記事