【问题标题】:Can't retrieve post values无法检索帖子值
【发布时间】:2015-02-03 21:11:52
【问题描述】:

我正在尝试在 Laravel 中创建一个 API,以将游戏与后端应用程序集成。 游戏需要发布用户名和密码,我将使用此 API 为该会话创建一个令牌。 我会尝试 Route::post、Route::any,但是当我使用 SoapUI 或 REST 控制台(chrome 插件)使用方法 POST 发送请求时,Input::get('any') 什么也不返回。 当我使用 GET 方法发送请求时,它可以工作。 我在网上没有找到解决方案。

routes.php

Route::group(array('prefix' => 'api'), function() {
    Route::any('/gamelogin', 'ApiController@login');    
    Route::group(array('prefix' => 'v1', 'before' => 'apitoken'), function() {
        Route::get('/milestone', array('uses' => 'ApiController@milestone'));   
    }); 
});

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);

        }

    }

}

【问题讨论】:

  • 我没有看到您的代码有任何问题,并且 Route::any() 或 Route::post() 应该捕获任何 POST 请求。也许您可能会尝试从您的应用程序中捕获 Laravel 之外的 POST 请求,看看它是否通过这种方式。
  • 检查 Input::all() 正在返回请求输入 - Input::get('any') 实际上是在寻找一个名为 any 的请求参数。

标签: post laravel routes


【解决方案1】:

我发现了问题。 代码是正确的,但是我不知道我需要在测试工具(例如rest控制台)中配置一个名为raw body的参数,并将参数值设置为JSON。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多