HttpSocketクラスを使ってHTTPヘッダをセット
CakePHP1.2.5を利用してます。
HttpSocketクラスを使うと、HTTPを使った通信が簡単に使えます。例えば自分のサーバから、他のサーバにHTTPでデータを送るとか簡単にできます。
基本的には、HttpSocketクラスを読み込んで、newして、getメソッドを呼ぶだけ。
App::import('Core', 'HttpSocket'); $HttpSocket = new HttpSocket(); $query = array('q1' => 'queryvalue1'); $ret = $HttpSocket->get('http://hogehoge.com/hoge/',$query);
このようにすると、hogehoge.comのサーバに、getリクエストを送ってくれます。
getメソッドの第2引数はクエリになっていて、ここに配列で指定すると
http://hogehoge.com/hoge/?q1=queryvalue1
というようにクエリをつけてくれます。
サーバ間通信する際に、HTTPヘッダに何かしらの情報(例えば携帯の端末IDとか)も追加してHTTP通信したい場合は、getメソッドの第3引数に、配列で渡してあげます。
App::import('Core', 'HttpSocket'); $HttpSocket = new HttpSocket(); $query = array('q1' => 'queryvalue1'); $request = array('header' => array('X_UP_SUBNO' => 'AU000001111') ); $ret = $HttpSocket->get('http://hogehoge.com/hoge/', $query, $request);
これをすれば、例えばSSLページのモバイルアクセス集計でビーコンのサーバ間通信する際に、ヘッダに携帯端末IDも入れてくださいといわれても大丈夫!
ヘッダ情報以外にも第3引数に配列で色々と指定できるので、詳細は下記のページを参考に。
http://book.cakephp.org/ja/view/804/request
これを見ると、BASIC認証を通すとか、Cookieをセットするなどが可能です。
getメソッド以外にもPOSTメソッドなどもあります。詳細はAPIを参考に。
http://api.cakephp.org/file/cake/libs/http_socket.php