第8回 HTTP_Request クラス - HTTPリクエスト支援ライブラリ - PEAR講座
くまっち先生のPEAR講座
Lecutures on PHP
第8回 HTTP_Request クラス - HTTPリクエスト支援ライブラリ (その1)
HTTP_Requestとは?
HTTP_Requestは、HTTP通信のリクエスト処理とそのレスポンス内容の取り扱いを簡単に行うことができるライブラリです。前回の講座で紹介したNet_Socketの使用例として、HTTPプロトコルによるリクエスト処理を行うPHPコードを紹介しましたが、HTTP_RequestはこのHTTPリクエスト処理に特化した作りになっているため使い勝手もよく、より簡単で明確なPHPコードで実現することができるようになります。
例えば、あるURLに対してHTTPリクエストを行いそのレスポンス内容を表示するためのコードは、リスト1のように書くことができます。
リスト1. HTTP_Requestを使ったリクエスト処理
require_once 'HTTP/Request.php';
$url = 'http://www.phppro.jp/';
$request = &new HTTP_Request();
$request->setURL($url);
$result = $request->sendRequest();
if (!PEAR::isError($result)) {
echo $request->getResponseBody();
}
作成したHTTP_Requestクラスに対してURLを与え、リクエストを行うためのメソッドsendRequestを実行します。実行時の戻り値はリクエスト実行に伴う結果になっており、正しくリクエストが行えているかを確認した後、レスポンスのボディ部分(今回の場合は、HTMLのソース)を出力しています。
これはGETによるリクエスト例ですが、POSTによるリクエストを行うことも可能です。リスト2に示すのがPOSTによるリクエストのコード例です。リクエストを行う際のメソッドタイプ、およびPOST時にあわせて送信するデータがあればその内容をそれぞれ専用のメソッドを使って指定します。その他はGETリクエストによるものと同じコードになっています。
リスト2. HTTP_Requestを使ったPOSTリクエスト
require_once 'HTTP/Request.php';
$url = 'http://www.phppro.jp/';
$request = &new HTTP_Request();
$request->setURL($url);
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData('Message', 'MessageData');
$result = $request->sendRequest();
if (!PEAR::isError($result)) {
echo $request->getResponseBody();
}





ページのトップへ


kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。