问题
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";
}
来源:https://stackoverflow.com/questions/37677600/spring-what-is-the-easiest-way-to-return-custom-http-status-headers-and-body-to