我正在尝试使用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>
答案 0 :(得分:0)
确定。我的错误,我在测试应用程序中错了。我正在编写所有参数,因为标题不是数据形式......