Spring @RestController Get Request Content-Type to response json or html

心已入冬 提交于 2019-12-20 05:13:24

问题


how can I take request Content-Type value? We need this to print json response or Html respone. My code is this:

 @RestController
public class GestorController {
    @RequestMapping(value="/gestores", method = RequestMethod.GET)  
    public Object gestoresHtml(@RequestParam(value="name", required=false, defaultValue="sh14") String name) throws Exception {
        String json = "prueba json";

        String contentType = ?????

        if(contentType.equals("application/json")){
            return json;
        }else{
            ModelAndView mav = new ModelAndView();
            mav.setViewName("gestores");
            mav.addObject("name", name);
            return mav;
        }
    }
}

Thanks for all.


回答1:


Content-Type is a request header and you can get with the following code:

    @RequestMapping("/display")
    public void display(@RequestHeader("Content-Type") String contentType)  {}

see spring's @RequestHeader docs

You don't need to do this manually. The thing that you need is Content negotiation. Which returns response type that will fit in your needs. See this post



来源:https://stackoverflow.com/questions/31647544/spring-restcontroller-get-request-content-type-to-response-json-or-html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!