HTTP_RequestでPOSTメソッド[Pear::HTTP_Request]

PearHTTP_RequestでPOSTメソッドをリクエストするには、メソッドの指定とPOSTするデータを 指定する必要があります。

メソッドの指定は、setMethod関数で指定します。指定できるメソッドは、次のものがあります。

メソッド定数
GETHTTP_REQUEST_METHOD_GET
HEADHTTP_REQUEST_METHOD_HEAD
POSTHTTP_REQUEST_METHOD_POST
PUTHTTP_REQUEST_METHOD_PUT
DELETEHTTP_REQUEST_METHOD_DELETE
OPTIONSHTTP_REQUEST_METHOD_OPTIONS
TRACEHTTP_REQUEST_METHOD_TRACE

POSTデータは、addPostData関数でnameとvalue(値)を指定します。

<?php
require_once "HTTP/Request.php";

$objHttp = new HTTP_Request("http://www.bnote.net/");

$objHttp->setMethod(HTTP_REQUEST_METHOD_POST);
$objHttp->addPostData("user", "bnote");

if (!PEAR::isError($objHttp->sendRequest())) {
    $body = $objHttp->getResponseBody();
}
?>

Pearのマニュアルにもありますが、addPostData関数はメンバ変数に連想配列としてPOSTデータを 保存します。続けてリクエストする場合、POSTデータが残っているので注意が必要です。

POSTデータを初期化するには、clearPostData()関数を使用します。

//HTTP_Requestのメンバ関数
function addPostData($name, $value, $preencoded = false)
{
    if ($preencoded) {
        $this->_postData[$name] = $value;
    } else {
        $this->_postData[$name] = $this->_arrayMapRecursive('urlencode', $value);
    }
}