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