gpt4 book ai didi

java - Spring 中的内容类型和@ResponseBody

转载 作者:行者123 更新时间:2023-12-04 20:51:20 25 4
gpt4 key购买 nike

它可能很简单,但它对我理解非常有帮助......

我在我的 restcontroller 中使用 @ResponseBody 将 String 值返回给浏览器。浏览器成功接收响应字符串。

即:

@RequestMapping(value="/foo", method=RequestMethod.GET)
@ResponseBody
public String foo() {
return "bar";
}

上述响应的内容类型是什么?如果这就像在 servlet 响应中编写 setAttribute 一样,属性名称是什么?

如果浏览器只接受“application/json”,spring 将如何处理响应?

最佳答案

提交的代码生成文本/html,默认情况下所有映射的 Controller 方法也是如此。如果你想生成 application/json,你必须将你的 RequestMapping 更改为

@RequestMapping(value="/foo", method=RequestMethod.GET, produces = "application/json")

但是这不是有效的 Json 字符串,您必须更改它,因为您提交的方法将返回空主体。提交的示例将是有效的文本/纯文本。

当请求包含标题时 "Accept: application/json"和返回其他内容类型,Spring 返回 Json 类型的响应,解释 HttpMediaTypeNotAcceptableException被抛出。

关于 servlet 类比 - 请解释,我不完全理解你的意思。 String 作为响应主体返回,它与请求属性有很大不同。你想达到什么目的?

关于java - Spring 中的内容类型和@ResponseBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744878/

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