使用Slim 3获取POST PUT参数

时间:2016-05-04 14:52:08

标签: php rest slim slim-3

我正在尝试使用Slim 3构建一个完整的REST API。使用Slim 2非常容易。但现在我遇到了一些问题。

POST和PUT路由无法正常工作。我无法得到参数。 我在文档上找到了$request->getHeaders(),它可以运行但不是参数length,而是获取HTTP_LENGHT,每个参数都有 HTTP _ 前缀。

我发现这个question$request->getParsedBody()为我返回一个空数组。

我正在使用Advanced REST Client测试我的API,这是我作为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>

1 个答案:

答案 0 :(得分:0)

确定。我的错误,我在测试应用程序中错了。我正在编写所有参数,因为标题不是数据形式......