我正在使用 Jersey 2.16。对于 rest 接口(interface),我需要接受“application/xml”并使用 charset=utf-8 生成“application/xml”。我的代码是,
@POST
@Produces("application/xml; charset=utf-8")
@Consumes("application/xml; charset=utf-8")
public String process(String request) {
...
return response;
在这里,当我从客户端发送请求时,我将 Content-Type
设置为 application/xml;charset=iso-8859-1
我希望服务器抛出一些错误,因为它与 utf-8
不匹配。但这不会发生。但是 charset=utf-8
是响应设置的。这是检查 HTTP 请求
的 charset
的正确方法吗?
最佳答案
您可以直接使用@HeaderParam 注入(inject),然后在您的代码中验证字符集。
public String process(@HeaderParam("Accept-Charset") String charset, String request) {
if (charset.equalsIgnoreCase ("utf-8"))
{
// do something
}
else
{
// update your response.
}
...
return response;
关于http - @Consumes 中的 charset=utf-8 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632805/