HTTP_RequestでPOSTメソッド[Pear::HTTP_Request]
Pear の HTTP_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);
}
}