■ はじめに
* よく使う curlコマンドについて、メモ。
目次
【1】curl コマンド 【2】インストールされているか確認 【3】オプション 【4】curl あれこれ 1)コンテンツ取得 2)SSLサイトの場合 3)wget的な使い方 (コンテンツダウンロード) 4)HTTP ヘッダーを確認 5)REST API(JSON形式)をコールする 6)Proxy経由で接続 7)ネットワーク調査用のオプション指定
【1】curl コマンド
* curl(cURL) =「Client URL」の略 (curlは、カールと読む) * URL構文を使ってサーバーとのデータ転送するコマンド
【2】インストールされているか確認
* いつの間にか、Windowsでも使える * 「curl --version」で使えるか確認
【3】オプション
# | オプション | 説明 |
---|---|---|
1 | -s, --silent | 進捗やエラーを表示しない |
2 | -O | 標準出力ではなくファイルに出力 |
3 | -L | リダイレクト対応 |
4 | -f, --fail | 何かエラーがあった時は、エラーコード返す |
5 | -F | Upload時に送信したいファイルを指定 (e.g. curl -X POST -F jpgfile=@/var/tmp/demo.jpg https://xxxxx.net/upload) |
6 | -d, --data | POST でフォームを送信する。引数で送信するコンテンツを指定する |
7 | -H | Request Headerを追加(Content-Typeを指定する場合。e.g. 「-H "Content-Type:application/json"」) |
8 | -X, --request | HTTPメソッド(GET/POST/PUT/DELETE etc)を指定。e.g. 「-X DELETE」) |
9 | -v, –verbose | 処理状況の更なる詳細や説明を出力 |
10 | -I (大文字のアイ) | HTTPレスポンスヘッダーの取得 |
11 | -x, --proxy | プロキシ e.g. -x http://192.168.1.1:3128 |
12 | --noproxy | プロキシを経由せずに通信 |
【4】curl あれこれ
1)コンテンツ取得
* コンテンツが取得できるか確認
コマンド例
curl http://www.yahoo.co.jp/
curl http://www.yahoo.co.jp/ > result.txt
参考文献
https://hydrocul.github.io/wiki/commands/curl.html
2)SSLサイトの場合
curl --insecure https://www.yahoo.co.jp/ curl -k https://www.yahoo.co.jp/
参考文献
http://www.turbolinux.com/support/document/knowledge/866.html
3)wget的な使い方 (コンテンツダウンロード)
# curl -OL {ダウンロードするURL} curl -OL http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip # -O: 標準出力ではなくファイルに出力 # -L: リダイレクト対応
4)HTTP ヘッダーを確認
curl -I http://www.yahoo.co.jp/ # -I: HTTPレスポンスヘッダーの取得
使いどころ
* 例えば、リダイレクトの設定を行った際のチェック
参考文献
https://qiita.com/yasuhiroki/items/a569d3371a66e365316f
5)REST API(JSON形式)をコールする
* 以下の関連記事で使用した
Apache Kafka ~ Kafka Connect ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
# より抜粋 curl -X POST --header "Content-Type: application/json" \ http://localhost:8083/connectors -d @sample-source.json curl -X DELETE http://localhost:8083/connectors/sample-source-data
構文
curl -X POST -H "Content-Type: application/json" -d "${JSON}" "${ENDPOINT}"
参考文献
https://qiita.com/Jazuma/items/5aa0a205f67c6dba9425
6)Proxy経由で接続
curl google.com -x http://192.168.1.1:3128 # -x http://ユーザ名:パスワード@サーバ名:ポート curl google.com -x http://user:password@192.168.1.1:3128
Proxy経由せずに通信
curl --noproxy * http://127.0.0.1:8080
参考文献
https://qiita.com/tkj/items/c6dad4efc0dff4fecd93
https://yamakisso.hatenablog.com/entry/2020/12/24/025955
7)ネットワーク調査用のオプション指定
curl -IvL https://hub.docker.com/ # -I : HTTPレスポンスヘッダーの取得 # -v, –verbose : 処理状況の更なる詳細や説明を出力 # -L : リダイレクト対応
参考文献
https://daeudaeu.com/curl-command/
https://qiita.com/shtnkgm/items/45b4cd274fa813d29539
https://qiita.com/yasuhiroki/items/a569d3371a66e365316f
https://weblabo.oscasierra.net/curl-post/
関連記事
Apache Kafka ~ Kafka Connect ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
シェル ~ 非同期 ~
https://dk521123.hatenablog.com/entry/2023/06/01/000000
ネットワーク系コマンド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/07/27/214633