springboot设置Content-Type的踩坑记录
在Spring Boot中设置Content-Type
通常是在控制器层面进行的,可以使用@RequestMapping
注解的produces
属性来指定响应的Content-Type
。
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@RequestMapping(value = "/someEndpoint", produces = "application/json")
public String someMethod() {
// 方法实现
return "{\"key\": \"value\"}";
}
}
如果你需要在代码中动态设置Content-Type
,可以使用HttpServletResponse
对象。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController
public class DynamicContentTypeController {
@GetMapping("/dynamicContentType")
public void dynamicContentType(HttpServletResponse response) throws IOException {
response.setContentType("application/json");
response.getWriter().write("{\"key\": \"value\"}");
}
}
如果你遇到了设置Content-Type
时的问题,请确保你的方法没有返回void
,并且你没有配置其他的ContentNegotiationConfigurer
,这可能会覆盖掉你设置的Content-Type
。
评论已关闭