Php Laravel:忽略412错误页

Php Laravel:忽略412错误页,php,json,laravel,lumen,Php,Json,Laravel,Lumen,必须有一个非常简单的解决方案,但我不知道如何在谷歌或Stackoverflow中搜索这个问题,所以,是的,我还没有找到任何东西 我在Lumen中编写了一个简单的API路由,在验证失败时返回一个包含421的json字符串: { "code": 412, "status": "error", "data": "validation failed" } 现在,我想在另一个Laravel项目中调用该路由,但随后,我得到了一个巨大的错误页面,上面说: 客户端错误:POST http://w

必须有一个非常简单的解决方案,但我不知道如何在谷歌或Stackoverflow中搜索这个问题,所以,是的,我还没有找到任何东西

我在Lumen中编写了一个简单的API路由,在验证失败时返回一个包含421的json字符串:

 {   "code": 412,   "status": "error",   "data": "validation failed" }
现在,我想在另一个Laravel项目中调用该路由,但随后,我得到了一个巨大的错误页面,上面说:

客户端错误:
POST
http://www.serellyn.net/development/game_api/public/platforms

导致
412先决条件失败
响应:

{"code":412,"status":"error","data":"validation failed"}
我确实认为这是非常正常的行为,因为Laravel在其响应中看到了一个错误。但我想做的就是接收我自己的带有412错误代码的json字符串,并能够继续使用我的网页

我怎样才能解决这个问题? 先谢谢你

编辑:忘记添加一些代码。我使用Guzzle调用我的API

$client = new Client(['base_uri' => 'http://www.serellyn.net/development/game_api/public/', 'auth' => array('dev', '<dev>2016')]);
        $res = $client->request('POST', 'platforms', array('form_params' => ['name' => $request->name]));
        if($res->getStatusCode() == 201) {
            Session::flash('success', $request->name . ' successfully added');
        } else {

        }
        return redirect()->route('platforms.add.get');
$client=新客户端(['base\u uri'=>'http://www.serellyn.net/development/game_api/public/','auth'=>array('dev','2016')];
$res=$client->request('POST','platforms',array('form_params'=>['name'=>$request->name]);
如果($res->getStatusCode()==201){
会话::flash('success',$request->name.'successfully added');
}否则{
}
return redirect()->route('platforms.add.get');

我认为回答是正确的。我要做的是在try-catch块中捕获错误,然后继续我想要的方式

问题在于,如果http_errors请求选项设置为true,Guzzle会引发400级错误的异常。(这是默认值)

您需要在请求中输入
'http\u errors'=>false
,如下所示:

$client->request('POST', 'platforms', array('http_errors' => false,'form_params' => ['name' => $request->name])); if($res->getStatusCode() == 201) {

也有同样的问题,但有一个网站,我只是在apache服务器上重新编写了我的mod_安全模块,它再次与ssl配合使用。您可以阅读更多内容

您可以发布用于调用api的代码吗?@AmirBar,很抱歉。首先我想添加它,但我忘了:)@AmirBar Check my edit:)看看异常下的文档“如果http\u errors请求选项设置为true,则会为400级错误抛出一个GuzzleHttp\Exception\ClientException”,因此最终答案是:$res=$client->request('POST',platforms',array”('http_errors'=>false,'form_params'=>['name'=>$request->name]);如果($res->getStatusCode()==201){但是我不能使用我在JSON中返回的内容,对吗?因为API进行验证,所以如果验证失败,我想知道哪些验证失败,哪些验证在我的API中处理,然后在JSON中返回。当然可以。您应该随错误一起发送错误消息。在try catch中,从异常获取错误消息你可以找出失败的原因。