当客户端请求不可接受的 MIME 类型时,如何防止 Jersey 在客户端喷出 HTML 页面?我想使用ExceptionMapper
,但我不确定要捕获什么异常,或者这是否是处理 406 的最佳方法。
谢谢!
当客户端请求不可接受的 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>