Issue
I'm working on a RESTful web service in Java. I need a good way to send error messages to the client if something's wrong.
According to the rel="nofollow noreferrer">Javadoc, HttpServletResponse.setStatus(int status, String message)
is deprecated "due to ambiguous meaning of the message parameter."
Is there a preferred way to set the status message or "reason phrase" of the response? The sendError(int, String)
method doesn't do it.
Edit: To clarify, I want to modify the HTTP status line, i.e. "HTTP/1.1 404 Not Found"
, not the body content. Specifically, I'd like to send responses like "HTTP/1.1 400 Missing customerNumber parameter"
.
Or I want to modify the HTTP status line to say something like 227 IM Used
- in other words: an HTTP Status Description different from what the web-server would know to send.
Solution
I don't think any RESTful client would expect to look at the reason phrase to figure out what went wrong; most RESTful services I've seen/used will send the standard status info and an expanded message in the body of the response. sendError(int, String)
is ideal for that situation.
Answered By - Hank Gay
Answer Checked By - Robin (JavaFixing Admin)