PHPのcURLを利用してAPIをGET/POSTで叩く
PHPからcURLを利用してhttpのget, postで問い合わせを行ってみます。
今回はYAHOOのapiを叩くプログラムを書いてみます。
CURLでGET
まずはGETでの問い合わせです。
// コネクションを開く $conn = curl_init(); // サーバ証明書の検証は行わない。 curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, false); // curl_execの実行結果を文字列として取得できるように設定 curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 問い合わせ先のurlを指定 curl_setopt($conn, CURLOPT_URL, self::YAHOO_API_URL); // パラメータを設定 curl_setopt($conn, CURLOPT_POSTFIELDS, http_build_query($param)); // 問い合わせを行い、その結果を取得 $result = curl_exec($conn); // コネクションを切断 curl_close($conn);
self::YAHOO_API_URLはこのクラス内にconstで宣言したフィールドを呼び出しています。
initでコネクションを開いて、setoptでオプションを指定し、execで問い合わせ実行。
その後closeで閉じるというわけすね。
比較的簡単に問い合わせが行えるものなのですね。
ただオプションが多いので、もっとしっかりと利用しようと思うと少し調査しないとですね。
CURLでPOST
次はPOSTで問い合わせを行ってみます。
// コネクションを開く $conn = curl_init(); // サーバ証明書の検証は行わない。 curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, false); // curl_execの実行結果を文字列として取得できるように設定 curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // POSTで送信するように設定 curl_setopt($conn, CURLOPT_POST, true); // 問い合わせ先のurlを指定 curl_setopt($conn, CURLOPT_URL, self::YAHOO_API_URL); // パラメータを設定 curl_setopt($conn, CURLOPT_POSTFIELDS, http_build_query($param)); // 問い合わせを行い、その結果を取得 $result = curl_exec($conn); // コネクションを切断 curl_close($conn);
基本的にGETと同じで、オプションが一つ追加されています。
お手軽です。
参考サイト
今回参考とさせていただいたので以下のサイトです。
零弐壱蜂
PHPのcurlでPOST
参考というか、ままというか……。