cURLでHTTPリクエストを送る
cURLを使って外部APIにGETリクエストやPOSTリクエストを送信します
「cURLでHTTPリクエストを送る」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
cURLとは
cURLは、URLを使ってデータを転送するためのライブラリです。PHPではcurl_*関数として利用でき、外部APIを呼び出す標準的な方法になっています。
基本的なGETリクエスト
cURLハンドルを初期化し、オプションを設定して実行した後、閉じます。
<?php
$ch = curl_init("https://api.example.com/users");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;CURLOPT_RETURNTRANSFER
このオプションを設定しない場合、curl_exec()はレスポンスを直接出力します。レスポンスを変数に取得するにはtrueを設定してください。
POSTリクエスト
POSTリクエストを送信するには、CURLOPT_POSTとCURLOPT_POSTFIELDSを設定します。
<?php
$ch = curl_init("https://api.example.com/users");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode(["name" => "Alice"]),
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
]);
$response = curl_exec($ch);
curl_close($ch);ヘッダーの設定
ヘッダー文字列の配列をCURLOPT_HTTPHEADERに渡します。
<?php
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer ".$token,
"Accept: application/json",
]);HTTPステータスコードの取得
curl_exec()の後に、curl_getinfo()を使ってレスポンスのステータスコードを取得します。
<?php
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $statusCode; // 200, 404, 500, etc.エラー処理
接続エラーを検出して報告するには、curl_errno()とcurl_error()を確認します。
<?php
if (curl_errno($ch)) {
echo "cURL error: ".curl_error($ch);
}
curl_close($ch);タイムアウトオプション
リクエストが停止したままにならないように、接続と実行のタイムアウトを設定します。
<?php
curl_setopt_array($ch, [
CURLOPT_CONNECTTIMEOUT => 5, // seconds to connect
CURLOPT_TIMEOUT => 15, // max total seconds
]);リダイレクトへの追従
CURLOPT_FOLLOWLOCATIONを有効にすると、リダイレクトに自動で追従できます。
<?php
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);SSL検証
cURLはデフォルトでSSL証明書を検証します。本番環境では検証を無効にしないでください。自己署名証明書を使うローカル開発の場合に限って無効化します。
<?php
// Development only — NEVER in production!
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt_array()
curl_setopt_array()を使用すると、複数のオプションを1回の呼び出しで設定できます。curl_setopt()を繰り返し呼び出すよりも簡潔です。
まとめ
cURLはPHPの標準HTTPクライアントです。常にCURLOPT_RETURNTRANSFERを設定し、curl_errnoでエラーを確認し、ハンドルは必ずcurl_closeで閉じてください。
理解度チェック
cURLのレスポンスを変数に取得するオプションはどれでしょうか。
よくある質問
「cURLでHTTPリクエストを送る」レッスンは無料ですか?
はい。「cURLでHTTPリクエストを送る」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「cURLでHTTPリクエストを送る」で何を学びますか?
cURLを使って外部APIにGETリクエストやPOSTリクエストを送信します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「cURLでHTTPリクエストを送る」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- JSONのエンコードとデコード
- cURLでHTTPリクエストを送る
- APIレスポンスとエラーの処理
- シンプルなAPIクライアントの構築