Я пытаюсь отредактировать и настроить чужой REST-сервер на PHP. Он основан на REST-сервере , написанном Филом Стердженом. В общем-то, я все обдумал, но мои запросы не работают должным образом.
В конструкторе сервера есть код
switch ($this->request->method)
{
case 'post':
$this->_post_args = $_POST;
$this->request->format and $this->request->body =
file_get_contents('php://input');
break;
}
Я знаю, что php://input
может быть прочитан только один раз, поэтому var_dump(file_get_contents('php://input'))
перед установкой переменных показывает, что мои данные XML правильно считываются из входного потока, но, очевидно, переменные установлены неправильно.
Но при var_dump($this->request->body)
выводит только NULL
! Есть ли специальная техника для хранения содержимого php://input
в переменной?
EDIT:
Я использую API Kitchen для отправки запроса POST и заголовки, которые он отправляет
Status: 200
X-Powered-By: PHP/5.3.2-1ubuntu4.11
Server: Apache/2.2.14 (Ubuntu)
Content-Type: application/xml
Date: Fri, 10 Feb 2012 11:00:43 GMT
Keep-Alive: timeout=15, max=100
Content-Length: 936
Connection: Keep-Alive
Из этого не видно, что такое кодировка.
РЕДАКТИРОВАТЬ 3:
Кодировка application/x-www-form-urlencoded
, в которой может быть проблема !! Как мне конкретно сказать, что это должно быть?
РЕДАКТИРОВАТЬ 2:
$this->request->method
содержит 'post'