PHP で curl を使って API Request
はじめに
PHP で curl を使って、API Request をする方法。
※API は JSON 形式のレスポンスを返す想定
TL;DR
curl_init→curl_setopt→curl_exec→curl_close- 500 Internal Server Error となる場合は、curl のインストール状況や有効化されているか要確認
目次
環境・条件
1 | $ grep -i pretty /etc/os-release |
詳細
curl_init, curl_setopt, curl_exec, curl_close を使う。
JSON 形式のレスポンスは json_decode でデコード。
実行の流れ
GET で JSON 形式のレスポンスの場合は下記のイメージ。
1 | $url = 'https://path/to/api'; |
サンプル
bitFlyer Lightning API の Ticker(GET /v1/ticker) を実行してみる。
※以下、Tinker 上での実行結果
1 | // $ php artisan tinker |
curl 実行で 500 Internal Server Error
cURL が有効になっていない(インストールされていない)場合、curl_init を使った時点で 500 Internal Server Error となる。
インストール後、apache2 の再起動で使えるようになる(はず)。
Ubuntu 18.04 の場合は下記の流れでいけた。
1 | $ sudo apt-get install php-curl |
まとめ
curl_init→curl_setopt→curl_exec→curl_close- 500 Internal Server Error となる場合は、curl のインストール状況や有効化されているか要確認
その他・メモ
POST とか使う場合は 公式マニュアル と PHPでHTTPリクエスト(cURL&PUTでパラメータを渡す際の注意) - Qiita あたりを見ておけば良い。
参考文献
- PHP: cURL 関数 - Manual
- PHP: json_decode - Manual
- PHPでHTTPリクエスト(cURL&PUTでパラメータを渡す際の注意) - Qiita
- PHP cURLの色々な使い方 - Qiita
- WebAPIを叩く(curl) - Qiita
- LinuxでPHPのcurlをインストール・有効化する方法
関連記事
- Laravel で現在の URL 取得方法まとめ
- Laravel で Cookie を使う(参照/設定/削除)
- Laravel で PDF ファイルをブラウザで開く
- Laravel で withCount と having を使って絞り込み
- PhpSpreadsheet を使って PHP で Excel ファイルの操作(読み込み)
- Laravel で「開始日時 < 終了日時」であることをバリデーションする
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア