当客户端请求不可接受的MIME类型时,如何防止Jersey在客户端喷出HTML页面?我想使用ExceptionMapper,但是我不确定要捕获哪个异常,或者这是否是处理406的最佳方法。

谢谢!

最佳答案

您对客户端有控制权吗?

您的客户端接受MIME类型列表。如果您的服务器无法产生请求的MIME类型,则返回406 HTTP是有意义的。您还希望服务器做什么?

如果您知道客户端请求的是哪种MIME类型,并且如果服务器端的方法能够产生所请求的类型,则可以修改@Produces批注以允许服务器提供所需的内容。

编辑:我手头没有一个简单的解决方案(可能涉及ContainerRequestFilter),但是如果您使用的是tomcat,但是您可以使用一个简单的内容设置自定义错误页面,就可以拥有一个非常简单的解决方案

<error-page>
    <error-code>406</error-code>
    <location>whatever you want</location>
</error-page>

关于jersey - 如何 catch Jersey 406 Not Acceptable ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15048217/

10-10 14:36