addRawPostDataはPOSTじゃなくてinput!!

Filed under 未分類

HTTP_RequestとかHTTP_Client(HTTP_Requestのラッパー)とか使っちゃうわけですが、

昨日うまく動かなくて、調べてたことを纏めておこうと思います。

HTTP_Requestでデータを渡すときの方法が2通り?ありまして、

1個目のパターンが、

$request =& new HTTP_Request();
$request->setURL($uri);
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$request->addPostData(“data”,    $data);
$request->sendRequest();
$code = $request->getResponseCode();
$response = $request->getResponseBody();

これの場合、$dataという送りたい値は、addPostDataメソッドで送付しているので、

受け側では、$_POST($postData = $_POST; みたいに)で取れるわけですよ。

次が、

$request =& new HTTP_Request();
$request->setURL($this->_uri);
$request->setMethod(HTTP_REQUEST_METHOD_POST);
$request->addRawPostData($data,false);
$request->sendRequest();
$code = $request->getResponseCode();
$response = $request->getResponseBody();

これの場合、送りたい$dataの値は、addRawPostDataメソッドを利用しているので、
受け側では、$_POSTでは受け取ることができない!わけですよ。

この場合には、受け側で、file_get_contentsやfopenで開いて
php://inputの中身を取得する方法になるようです。

$postData = file_get_contents(“php://input”);

みたいに

知らなかったので、ごっぽり調べることになりました。。。。

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*