Spring what is the easiest way to return custom Ht

2019-06-14 06:04发布

问题:

I would like to return to my Rest Client the simplest answer. Only the:

  • http status code 201
  • http status message Created
  • http header Content Type
  • http response body Custom string answer

What is the easiest way?

I've used to use ResponseEntity object this way:

return new ResponseEntity<String>("Custom string answer", HttpStatus.CREATED);,

but unfortunately, I can not simple pass http header in constructor.

I have to create HttpHeaders object and there add my custom header like this:

MultiValueMap<String, String> headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE);

return new ResponseEntity<String>("Custom string answer", headers, HttpStatus.CREATED);

But I am looking for something simpler. Something that could fit one line of code.

Can Anyone help?

回答1:

As already suggested from @M.Deinum this is the easiest way:

@RequestMapping("someMapping")
@ResponseBody
public ResponseEntity<String> create() {
    return ResponseEntity.status(HttpStatus.CREATED)
       .contentType(MediaType.TEXT_PLAIN)
       .body("Custom string answer");
}


回答2:

I guess this will help:

@RequestMapping(value = "/createData", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
@ResponseBody
public String create(@RequestBody Object input)
{
    return "custom string";
}