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を使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
-
独自のバリデーションルールを作成
CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規
-
-
Markdown Plugin
「Markdown CakePHP Plugin」は、MarkDown書式をレンダリングしてくれるビューヘルパーです。MarkDownについて勉強しているうちに出会ったので試し打ちです。 ダウンロー
-
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook
-
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
-
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
-
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
Comment
CakePHP 2.x | HttpSocketを使用してリクエスト送信 http://t.co/d1A05JEo3J
php: CakePHP 2.x | HttpSocketを使用してリクエスト送信 http://t.co/bo7qf9zRyE