久々にPHPを触ってHTTP通信をやろうとしたらCakePHPで簡単な方法があったのでメモ
公式ドキュメント(英)より
CakePHPのバージョンは2.4です.
HttpSocketというメソッドを利用するっぽいです
POSTリクエストの場合
(ユーザー登録をする某APIへリクエスト)
$results
にレスポンスの値が入ります.
post_controller.php
$url = 'http://example.com/users/add';
$data = array(
'username' => "yourename",
'pass' => "パスワード",
);
App::uses('HttpSocket', 'Network/Http');
$HttpSocket = new HttpSocket();
$results = $HttpSocket->post($url, $data);
debug($results);
GETリクエストの場合
(問題を取得する某API)
$results
にレスポンスの値が入ります.
get_controller.php
$url = 'http://example.com/problems/index.json';
$data = array(
'limit' => 100,
'grade' => 3
);
App::uses('HttpSocket', 'Network/Http');
$HttpSocket = new HttpSocket();
$results = $HttpSocket->get($url, array($data));
debug($results);
/*おまけ jsonの場合は$results->bodyに対してjson_decode()すると良いっぽです.*/
$response = json_decode($results->body);