CakePHP には、ウェブサービスへ接続するようなリクエストを簡単に行える HttpSocket クラスがあります。
get メソッドはシンプルな HTTP GET のリクエストを作成し、リクエストの結果を返します。
string function get ($uri, $query, $request)
$uri
はリクエストを行うウェブアドレス、$query
はクエリ文字列のパラメータです。クエリは、文字列で
"param1=foo¶m2=bar" としても、キー付きの配列で配列で array('param1'
=> 'foo', 'param2' => 'bar')
というようにしても、どちらでもかまいません。
App::import('Core', 'HttpSocket');
$HttpSocket = new HttpSocket();
$results = $HttpSocket->get('www.google.com/search', 'q=cakephp');
//Google で "cakephp" を検索した結果の HTML が返ります
post メソッドはシンプルな HTTP POST のリクエストを作成し、リクエストの結果を返します。
string function post ($uri, $data, $request)
post
メソッドは get とほとんど同じです。 $uri
はリクエストを行うウェブアドレス、 $query
は post
するデータです。データは、文字列で "param1=foo¶m2=bar"
としても、キー付きの配列で array('param1' => 'foo', 'param2' => 'bar')
というようにしても、どちらでもかまいません。
App::import('Core', 'HttpSocket');
$HttpSocket = new HttpSocket();
$results = $HttpSocket->post('www.somesite.com/add', array('name' => 'test', 'type' => 'user');
//$results には post の結果が格納されます
全てのラッパ(get, post, put, delete) から呼び出される、基本的なリクエストのメソッドです。リクエストの結果を返します。
string function request($request)
$request キー付きの配列で、様々なオプションのために使用します。フォーマットとデフォルトのセッティングは、次の通りです。
var $request = array(
'method' => 'GET',
'uri' => array(
'scheme' => 'http',
'host' => null,
'port' => 80,
'user' => null,
'pass' => null,
'path' => null,
'query' => null,
'fragment' => null
),
'auth' => array(
'method' => 'Basic',
'user' => null,
'pass' => null
),
'version' => '1.1',
'body' => '',
'line' => null,
'header' => array(
'Connection' => 'close',
'User-Agent' => 'CakePHP'
),
'raw' => null,
'cookies' => array()
);