Получите параметры POST PUT с помощью Slim 3

Я пытаюсь создать полный REST API с Slim 3. Это было довольно просто с Slim 2. Но теперь у меня есть некоторые проблемы.

Маршрут POST и PUT не работает, как и ожидалось. Не могу получить параметры. Я нашел $request->getHeaders() в документации, которая работает, но вместо того, чтобы получить, например, параметр length, я получаю HTTP_LENGHT, и каждый параметр имеет этот префикс HTTP_.

Я нашел этот вопрос, но $request->getParsedBody() возвращает пустой массив для меня.

Я тестирую свой API с помощью расширенного клиента REST. это пример того, что я отправляю в качестве запроса POST:

POST /test/barrier HTTP/1.1
 HOST: mydomain.com
 start_lng: 2.6423183977058
 start_lat: 56.865296679535
 type: Something
 comment: testcomment
 due_date: null
 content-type: application/x-www-form-urlencoded

Я использую Slim 3.3.0.

Вот пример того, что я получаю с $request->getHeaders():

["HTTP_START_LAT"]=>
  array(1) {
    [0]=>
    string(15) "56.865296679535"
  }
  ["HTTP_START_LNG"]=>
  array(1) {
    [0]=>
    string(15) "2.6423183977058"
  }

Одна странная вещь: если я попытаюсь сделать $request->hasHeader('length');, я получу значение своего параметра, а это значит, что имя правильное. Я действительно не понимаю.

Я просто хочу получить массив параметров, как это делал $app->request->post() в Slim 2.*. Спасибо.

Мой .htaccess такой:

RewriteEngine On

RewriteBase /test

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

<files db.config.ini>
    deny from all
</files>

person TDK    schedule 04.05.2016    source источник
comment
Вероятно, вам следует отправлять данные в виде тела POST, а не заголовков.   -  person Mika Tuupola    schedule 04.05.2016
comment
@Mika Да... Точно... Я был уверен, что это ошибка в самом коде, а не просто человеческая ошибка, ха-ха. Классический способ потерять время.   -  person TDK    schedule 04.05.2016


Ответы (1)


В порядке. Моя ошибка, я просто ошибся в тестовом приложении. Я писал все свои параметры в виде заголовков, а не в форме данных...

person TDK    schedule 04.05.2016