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

メモ:  Category:pear

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

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

メソッド 定数
GET HTTP_REQUEST_METHOD_GET
HEAD HTTP_REQUEST_METHOD_HEAD
POST HTTP_REQUEST_METHOD_POST
PUT HTTP_REQUEST_METHOD_PUT
DELETE HTTP_REQUEST_METHOD_DELETE
OPTIONS HTTP_REQUEST_METHOD_OPTIONS
TRACE HTTP_REQUEST_METHOD_TRACE

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

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

$objHttp = new HTTP_Request("https://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);
    }
}

bluenote by BBB