我正在尝试使用新的 Spring 4.0 @RestController 从控制器返回一个简单的文本响应:
@RestController
@RequestMapping(value = "/heartbeat")
public class HeartbeatController {
private static final Logger logger = LoggerFactory.getLogger(HeartbeatController.class);
@RequestMapping
public String heartbeat() {
logger.info("Received heartbeat!");
return "I'm Alive!";
}
@RequestMapping(value = "/test", produces = MediaType.TEXT_PLAIN_VALUE)
public String heartbeat2() {
logger.info("Received heartbeat!");
return "I'm Alive!";
}
}
当我访问 /heartbeat 然后我回来:
"I'm Alive!"
结果包括双引号,这是我没想到的。
当我访问 /heartbeat/test 时,我得到一个空响应,但我希望我活着!文本。
更新
curl -i http://myserver.com/rest/heartbeat
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Server: Development/1.0 Date: Tue, 17 Dec 2013 18:59:08 GMT Cache-Control: no-cache Expires: Fri, 01 Jan 1990格林威治标准时间 00:00:00 内容长度:12
“我还活着!”
curl -i -H "Accept: application/json" http://myserver.com/rest/heartbeat HTTP/1.1 200 OK 内容类型:application/json;charset=UTF-8 服务器:开发/1.0 日期:星期二, 2013 年 12 月 17 日 19:01:12 GMT 缓存控制:无缓存 过期时间:周五,1990 年 1 月 1 日 00:00:00 GMT 内容长度:12
“我还活着!”
curl -i http://myserver.com/rest/heartbeat/test
HTTP/1.1 406 不可接受 服务器:开发/1.0 日期:2013 年 12 月 17 日星期二 19:00:13 GMT 缓存控制:无缓存 过期:1990 年 1 月 1 日星期五 00:00:00 GMT 内容长度:0
curl -i -H “接受:文本/纯文本” http://myserver.com/rest/heartbeat/test
HTTP/1.1 406 不可接受 服务器:开发/1.0 日期:2013 年 12 月 17 日星期二 19:02:06 GMT 缓存控制:无缓存 过期:1990 年 1 月 1 日星期五 00:00:00 GMT 内容长度:0