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
関連記事
-
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
-
CakePHP インストール時エラーの対処
CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設
-
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(
-
-
日付・時間のバリデーション
日付や時刻に関するバリデーションは以下のルールがビルトインされています。 date 日付 time 時刻 datetime 日時 (m:「月」を数字表記 / M:「月」を英語表記)
-
-
radioボタンを実装
Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ
-
-
数値系バリデーション
CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること


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