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
関連記事
-
-
(メール・URL・電話・郵便・IP) データ バリデーション
今回は、プロフィール情報に使用されるデータに絞ったバリデーションルールです。 バリデーションルール 以下の5つのバリデーションルールがコアに用意されています。 email メールアドレス
-
-
Blowfishを使用してハッシュ化する
使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま
-
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
-
hasOne アソシエーション
hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(
-
-
パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。
-
-
ハッシュ関数の選択とハッシュ化処理
CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ
-
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook
-
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
Comment
CakePHP 2.x | HttpSocketを使用してリクエスト送信 http://t.co/d1A05JEo3J
php: CakePHP 2.x | HttpSocketを使用してリクエスト送信 http://t.co/bo7qf9zRyE