gpt4 book ai didi

Spring @RestController 不返回纯文本响应

转载 作者:IT老高 更新时间:2023-10-28 13:45:18 24 4
gpt4 key购买 nike

我正在尝试使用新的 Spring 4.0 @RestController 从 Controller 返回一个简单的文本响应:

@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 时,我得到一个空响应,但我希望 I'm Alive!文本。

更新

curl -i http://myserver.com/rest/heartbeat

HTTP/1.1 200 正常内容类型:application/json;charset=UTF-8服务器:开发/1.0日期:2013 年 12 月 17 日星期二 18:59:08 GMT缓存控制:无缓存过期:格林威治标准时间 1990 年 1 月 1 日星期五 00:00:00内容长度:12

“我还活着!”

curl -i -H "接受:应用程序/json"http://myserver.com/rest/heartbeatHTTP/1.1 200 正常内容类型:application/json;charset=UTF-8服务器:开发/1.0日期:2013 年 12 月 17 日星期二 19:01:12 GMT缓存控制:无缓存过期:格林威治标准时间 1990 年 1 月 1 日星期五 00:00:00内容长度:12

“我还活着!”

curl -i http://myserver.com/rest/heartbeat/test

HTTP/1.1 406 Not Acceptable 服务器:开发/1.0日期:格林威治标准时间 2013 年 12 月 17 日星期二 19:00:13缓存控制:无缓存过期:格林威治标准时间 1990 年 1 月 1 日星期五 00:00:00内容长度:0

curl -i -H "接受:文本/纯文本"http://myserver.com/rest/heartbeat/test

HTTP/1.1 406 Not Acceptable 服务器:开发/1.0日期:格林威治标准时间 2013 年 12 月 17 日星期二 19:02:06缓存控制:无缓存过期:格林威治标准时间 1990 年 1 月 1 日星期五 00:00:00内容长度:0

最佳答案

我发现我的 WebConfig 的 configureMessageConverters 中缺少 StringHttpMessageConverter。我正在配置消息转换器来控制 Jackson ObjectMapper。

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setPrettyPrint(SystemProperty.environment.value() == Development);
mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper());
converters.add(mappingJackson2HttpMessageConverter);
converters.add(new StringHttpMessageConverter()); // THIS WAS MISSING
}

关于Spring @RestController 不返回纯文本响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20575369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com