第8回 HTTP_Request クラス - HTTPリクエスト支援ライブラリ - PEAR講座

PHP基礎編

くまっち先生の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のように書くことができます。

    リスト1HTTP_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リクエストによるものと同じコードになっています。

    リスト2HTTP_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();
    }

  



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

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

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)