0Pricing
PHP Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. JSONのエンコードとデコード
  2. cURLでHTTPリクエストを送る
  3. APIレスポンスとエラーの処理
  4. シンプルなAPIクライアントの構築
← PHP Academyに戻る