0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゼロから始める curl 入門:基本コマンドと使い方ガイド

Posted at

cURL(カール)とは何か?

cURL(コマンドラインURL)は、コマンドラインやスクリプトからHTTP/HTTPSなどのプロトコルを使ってデータを送受信するためのツールです。Web APIをテストしたり、ファイルをダウンロードしたりするのに便利です。


基本的なcURLの使い方

まずは最も基本的なコマンドから始めましょう。

1. URLのデータ取得

curl https://example.com
  • 動作: 指定したURLのデータを取得して、ターミナルに出力します。
  • : ウェブページのHTMLコードを確認。

2. ファイルのダウンロード

curl -O https://example.com/file.zip
  • -O: URLから取得したファイルをそのまま保存します。

3. ファイル名を指定して保存

curl -o custom_name.zip https://example.com/file.zip
  • -o: 保存時に任意のファイル名を指定。

進んだ使い方: Web APIとcURL

APIを使う際に、GETやPOSTリクエストを送信します。

1. GETリクエスト

curl -X GET https://api.example.com/data
  • -X GET: 明示的にGETリクエストを指定(省略可能)。
  • : APIからデータを取得。

2. POSTリクエスト

curl -X POST -d "key=value&key2=value2" https://api.example.com/data
  • -d: データ(フォームのような形式)を送信。
  • : ユーザー情報の登録。

3. JSON形式のデータ送信

curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com/data
  • -H: ヘッダー情報を指定。Content-Type: application/jsonはJSONデータ送信時に必須。
  • : Web APIにJSON形式のリクエストを送信。

4. ヘッダー情報の取得

curl -I https://example.com
  • -I: ヘッダー情報のみを取得。

5. 認証付きリクエスト

curl -u username:password https://api.example.com/data
  • -u: ユーザー名とパスワードを指定(Basic認証)。

実用的なcURLの例

1. REST APIを使ったデータ取得

curl -X GET -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/data
  • Authorization: Bearer: APIトークン認証でよく使う形式。

2. ファイルをアップロード

curl -X POST -F "file=@path/to/yourfile.jpg" https://example.com/upload
  • -F: ファイルをフォームデータとして送信。

3. リクエストとレスポンスをログに出力

curl -v https://example.com
  • -v: 詳細なログ(通信内容)を表示。

エラーとデバッグ

  • --fail: エラー時にエラーメッセージを出力。
  • -w: リクエスト時間やHTTPステータスを表示。
  • --retry: 接続失敗時に再試行。

例: 失敗時に3回までリトライ

curl --retry 3 https://example.com

cURLをマスターするための学習ステップ

  1. 基本コマンドの理解
    • GET、POST、ヘッダーの取得など。
  2. オプションの組み合わせ
    • -d-Hを組み合わせて、複雑なリクエストを試す。
  3. APIのテスト
  4. スクリプトでの自動化
    • シェルスクリプトに組み込んで実行(ループや条件分岐を追加)。
  5. ログとエラー管理
    • -v--failを使い、エラー時の挙動を把握。

学んだcURLをスクリプトに活用する例

シェルスクリプトでAPIにデータを送信

#!/bin/bash

API_URL="https://api.example.com/data"
AUTH_TOKEN="YOUR_TOKEN"

# GETリクエスト
curl -X GET -H "Authorization: Bearer $AUTH_TOKEN" $API_URL

# POSTリクエスト
curl -X POST -H "Authorization: Bearer $AUTH_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"name":"test_user","email":"test@example.com"}' $API_URL

さらなるステップ

  • HTTP/HTTPS以外のプロトコルを試す
    cURLはFTPやSFTP、LDAPなどさまざまなプロトコルに対応。

  • cURLの公式ドキュメントを参照
    cURL公式ページでオプションの詳細を確認。

  • Postmanとの比較を考える
    GUIツールのPostmanでAPIをテストし、cURLにエクスポートして学習を補完。


必要に応じてコードの詳細や応用例をお伝えします!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?