siteTitleImage

【Linuxコマンド】curlコマンドのオプションと複数パラメータについてメモ(URLに複数のGETパラメーターがある場合)

Author Image

Enzo

· 2015/10/17 · 5 min read
TopImage
INDEX

    色々と便利な curl コマンドですが、この間複数のパラメーターを持つ URL を指定していてハマったのでメモしておきます。

    あと備忘録としてによく使うコマンドオプションもまとめておいて後で確認できる様にしとこう・・・φ(..)メモメモ

    複数パラメーターの GET リクエストはエスケープが必要

    この事がすっかり頭に無くて

    curl http://hogehoge.com/hoge.php?list=3&view=4&req=true

    こんな感じで cron に登録していたらパラメーターが足りないまま実行されてしまってコケていました^^

    「&」の所はエスケープしないと正常に動かないと言うことで上の例の場合だと

    curl http://hogehoge.com/hoge.php?list=3\&view=4\&req=true

    この様にバックスラッシュ(\)を付けて登録することで正常に動くようになります。

    参考:curl – Crontab cron job will not run with url with parameter – Stack Overflow

    curl コマンドでよく使うオプション

    オプションの詳しい情報はこちらのサイトを参照  cURL – How To Use (マニュアルページ日本語訳)

    • -d, –data PARAM
      POSTリクエストとしてフォームを送信する。パラメータPARAMは「”value=name”」の形式
    • -e, –referer
      URL リファラーをURLで指定する
    • -f, –fail
      サーバエラーが発生したら黙って終了する
    • -i, –include
      HTTPヘッダを出力に含める
    • -m, –max-time
      TIME 最大転送時間をTIME秒に制限する
    • -o FILE
      取得したデータを指定したファイルFILEに出力する
    • -s, –silent
      進捗状況やエラーを表示しない
    • -u USER[:PASS]
      認証に用いるユーザー名USER, パスワードPASSを指定する(基本認証など)
    • -v, –verbose
      処理状況の更なる詳細や説明を出力させます。
    • -x HOST[:PORT]
      プロキシサーバとしてホストHOSTおよびポートPORTを利用
    • -y, –speed-time
      TIME 転送速度が指定した速度をTIME秒の間下回ったらダウンロードを終了する。速度は-Yオプションで指定
    • -A, –user-agent
      AGENT ユーザーエージェントAGENTを指定
    • -H, –head
      HEADER HTTPヘッダにHEADERを追加もしくは変更する
    • -I, –head
      ヘッダ情報を取得する
    • -O, –remote-name
      取得したデータを標準出力ではなくファイルに出力する
    • -R, –remote-time
      ダウンロードしたファイルのタイムスタンプをサーバ上のタイムスタンプに合わせる
    • -L, –location
      要求したページにリダイレクトが掛かっていた場合に追従する。この時要求がPOSTメソッドだった場合GETに変えられてしまうので変えられたくない場合は–post301, –post302, –post303等のオプションを併用する。

    とりとめのないまとめ

    様々なパラメーターを指定することで色々な使いみちのあるcurlですが、色々出来過ぎるので中々全てのオプションを覚える・・・とはいきませんね・・・。

    その都度調べてその都度新しい発見があるコマンドです^^

    # Linux

    Comment