HttpSocketを使用してリクエスト送信
CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。
HttpSocket get
HTTP GETリクエストを発行します。デモ
Foursquare APIのvenue searchを使って周辺のランドマークを取得
function getlandmark(){
$client_id = <Client ID(48桁の英数字:要取得)>;
$client_secret = <Client Secret(48桁の英数字:要取得)>;
App::uses( 'HttpSocket', 'Network/Http');
$HttpSocket = new HttpSocket( array( 'ssl_verify_host' => false));
$url = "https://api.foursquare.com/v2/venues/search?";
$params = array(
'll' => $this->data['Foursquare']['geocode'],
'client_id' => $client_id,
'client_secret' => $client_secret,
'v' => '20120712',
'locale' => 'en'
);
// request
$jresponse = $HttpSocket->get( $url, $params);
// decoding JSON
$aresponse = json_decode( $jresponse, true);
}
-
string get($uri, $query, $request)
- $uri:リクエスト送信先のWebアドレス
- $query:$uriに付与するパラメータ
文字列として結合するか、パラメータ名をキーに配列としても作成できます。"param1=foo¶m2=bar" もしくは array('param1' => 'foo', 'param2' => 'bar') - $request:?
HttpSocketの設定
2.3 Migration GuideのHttpSocketによると、デフォルトでSSL証明書の検証を行うように変更されたようです。
と怒られる場合があります。証明書のホスト名とCN(コモンネーム)が異なる場合に発生しますので、ssl_verify_hostをfalseに設定してHttpSocketインスタンスを生成して下さい。
$HttpSocket = new HttpSocket( array( 'ssl_verify_host' => false));
HttpSocket doesn't look at SSL certificate CN alternatives
Utilities > HttpSocket
関連記事
-
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
-
Js/Cssファイルの読み込みや出力する方法
CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン
-
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま
-
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
-
ハッシュ関数の選択とハッシュ化処理
CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ
-
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
-
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
-
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
-
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え


Comment
CakePHP 2.x | HttpSocketを使用してリクエスト送信 http://t.co/d1A05JEo3J
php: CakePHP 2.x | HttpSocketを使用してリクエスト送信 http://t.co/bo7qf9zRyE