考虑到Symfony 4 documentation,当发生418错误(我是茶壶)时,也不会抛出异常
然后我写了一个实现Symfony\Component\HttpKernel\Exception\HttpExceptionInterface
namespace App\Exception;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
class HttpTeapotException extends \Exception implements HttpExceptionInterface
{
public function getStatusCode()
{
return (418);
}
public function getHeaders()
{
$header = array();
return ($header);
}
}
然后是/teapot
路由的控制器
namespace App\TeaPot\Controller;
use App\Exception\HttpTeapotException;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class TeaPotController extends Controller
{
public function tea(Request $request)
{
throw new HttpTeapotException();
}
}
在讨价还价/teapot
时,我显然将其作为输出:
糟糕!发生错误
服务器返回“ 418我是茶壶”。
有些东西坏了。请让我们知道发生此错误时您正在做什么。我们将尽快修复它。不便之处,敬请谅解。
我的问题是:当服务器是茶壶时,是否有办法正确处理并抛出418,尤其是构建符合WC3(网络控制的咖啡联盟)的标头?