我对生成PNG图像响应的方法有疑问。
@RequestMapping(value = "/thumb/{id}.png", produces = "image/png")
@ResponseBody
public char[] thumb(@PathVariable UUID id)
{
// action logic here
return CatalogController.PLACEHOLDER_THUMB;
}
但是我无法访问此操作 - 它正确执行(我在数据库中看到逻辑效果),但客户端获得 406 Not Acceptable 。
以下是我模拟请求的方式(在Chrome和Internet Explorer中也是如此):
$ wget "http://localhost:8080/thumb/13164e6b-fc0f-4c67-a7d3-e2c56224384b.png" -O - --header="Accept: image/png"
--2013-11-18 18:37:30-- http://localhost:8080/thumb/13164e6b-fc0f-4c67-a7d3-e2c56224384b.png
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8080... connected.
HTTP request sent, awaiting response... 406 Not Acceptable
2013-11-18 18:37:30 ERROR 406: Not Acceptable.
以下是浏览器中显示的更详细说明:
description此请求标识的资源只能根据请求“accept”headers()生成具有不可接受特征的响应。
答案 0 :(得分:0)
好的,感谢大家的帮助,但答案更为微不足道 - 根本不可能使用char[]
作为回复内容。
切换到byte[]
,一切正常!
(可能可以为byte[]
注册处理程序,但我不需要它,因此无法确认)。