![](/img/trans.png)
[英]Slim - How to send response with “Content-Type: application/json” header?
[英]How to post data of 'content-type application/json' to slim php rest service
我在將來自Chrome Advance rest Client的mime類型content-type application/json
數據發布到苗條框架Web服務時遇到問題。 我嘗試了這些代碼以發送application/json
$app->post('/register', function() use ($app) {
$app->add(new \Slim\Middleware\ContentTypes());
$params = $app->request->getBody();
$name = $params->name;
$email = $params->email;
$password = $params->password;
...});
也嘗試了這個
$params = json_decode($app->request()->getBody());
var_dumb($params); //get NULL value here
得到錯誤
Trying to get property of non-object to this `$name = $params->name;`
請幫我如何捕獲application / json格式的數據? 謝謝
根據上面的詳細信息,假設您的原始JSON看起來像這樣
{"name":"John Smith", "mail":"jhon@mail.com", "password":"foobar"}
您可以像這樣訪問您的params 數組
$app->post('/register', function () use ($app) {
$params = $app->request->getBody() ;
$params = array_filter($params);
if(!empty($params)){
$name = $params['name'];
$mail = $params['mail'];
$pass = $params['password'];
// print $name;
}
})->name("register");
或者,如果您通過Content-Type: application/x-www-form-urlencoded
在Advanced Rest客戶端中發布Content-Type: application/x-www-form-urlencoded
,則可以使用$app->request->post();
訪問您的數組
$app->post('/register/', function () use ($app) {
$userInfo = $app->request()->params() ;
//or
$userInfo = $app->request->post() ;
$name = $userInfo['name'];
$mail = $userInfo['email'];
$pass = $userInfo['password'];
// print $name
})->name("register");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.