无法检索帖子值
问题描述:
我试图在Laravel中创建一个API来将游戏与后端应用程序集成。 游戏需要发布用户名和密码,我将使用此API为此会话创建一个令牌。 我会尝试Route :: post,Route :: any,但是当我发送请求时,使用SoapUI或REST Console(chrome插件)的方法POST,Input :: get('any')不会返回任何内容。 当我用GET方法发送请求时,它可以工作。 我在网上找不到解决方案。无法检索帖子值
routes.php文件
Route::group(array('prefix' => 'api'), function() {
Route::any('/gamelogin', '[email protected]');
Route::group(array('prefix' => 'v1', 'before' => 'apitoken'), function() {
Route::get('/milestone', array('uses' => '[email protected]'));
});
});
filters.php
Route::filter('apitoken', function() {
// check if apitoken is valid
});
ApiController.php
class ApiController extends BaseController {
public function login() {
try {
$statusCode = 200;
$response = [
'status' => [
'code' => 1,
'message' => 'Usuário ou senha inválidos'
]
];
$userdata = array(
'login' => Input::get('login'),
'password' => Input::get('password'),
'active' => '1'
);
if (Auth::attempt($userdata)) {
// TODO: verificar licença
$response['status'] = null;
$response['token'] = md5('id'.date('YmdHis'));
$response['api'] = 'v1';
$response['assets_url'] = 'games.xpto.com.br/'.Input::get('game').'/v1/'.'pt_br/';
$response['assets_version'] = 1;
}
} catch (Exception $e) {
$statusCode = 400;
} finally {
return Response::json($response, $statusCode);
}
}
}
答
我发现这个问题。 代码是正确的,但我不知道我需要在测试工具(例如其余控制台)中配置名为raw body的参数,并将参数值设置为JSON。
我没有看到你的代码有任何问题,Route :: any()或Route :: post()应该捕获任何POST请求。也许你可能会尝试的只是从应用程序中获取Laravel以外的POST请求,并查看它是否通过这种方式。 – 2014-12-05 21:53:02
检查Input :: all()是否返回请求输入 - Input :: get('any')实际上是查找一个名为'any'的请求参数。 – Dwight 2014-12-06 01:08:31