お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

Linuxコマンドメモ:curl

投稿日:
OS::Linux::コマンド

HTTPを始めFTPやLDAPなど多様なプロトコルに対応したクライアント

curl [options...] <url>

Options

ヘルプが充実してるのでヘルプ見たほうが早い

  • -X method
    • -X POSTとかするとそのメソッドを投げられる
    • -XPOST形式でも動く
  • -s
    • 通信の進捗を表示しない
    • 通信エラーも表示しない
  • -S
    • -sが指定されている時にエラーを表示する
  • -L
    • location headersを読む
    • 3xx系のコードの追従する(302 redirectとか)
    • -sSLでセットにして使うことが多い
  • -v
    • --verbose
    • レスポンス内容が全部出る
      • レスポンスヘッダを見る時に使える(-Iでも見れるがHEAD methodを投げてるだけなので-Xと併用できない)
      • エラー出力されるのでgrepしたい時などは標準出力にリダイレクトが必要
        • 2>&1
  • -H
    • ヘッダを投げられる
    • -H 'Content-Type: application/json'
    • -H 'User-Agent:' -H 'Accept:' -H 'Host:'でcurl自身の既定ヘッダを消せる。但しHostヘッダーのないリクエストはRFC違反であるため受け付けられる保証はない
  • -d
    • x-www-form-urlencodedを投げる時に使う
    • -d key=value
      • 複数あるときは複数指定する
    • 暗黙的に-X POST扱いになる
  • --data-urlencode
    • -dと同じだが中身がURLエンコードされる
  • -o <path>
    • ファイルを保存する
    • ダウンロード目当てならwgetのほうが使いやすい

JSONのPOST

curl -v -H 'Content-Type: application/json' -d '{ "hoge": "piyo" }' -- 'https://example.com'

参考