我假定REST服務使用RestEasy來解釋。
即提供使用注射@Context一個HTTP響應對象的一個很好的功能:
的@Context註釋允許你注入的javax.ws.rs.core.HttpHeaders,javax.ws.rs實例。 core.UriInfo,javax.ws.rs.core.Request,javax.servlet.HttpServletRequest,javax.servlet.HttpServletResponse,javax.servlet.ServletConfig,javax.servlet.ServletContext和javax.ws.rs.core.SecurityContext對象。
@Path("/")
public class MyService {
@Context org.jboss.resteasy.spi.HttpResponse response;
@GET @Path("/") public void myMethod(){
response.sendError(499, "The file was censored by NSA.")
}
}
但是,也許你還是考慮使用專有的HTTP標頭:
response.getOutputHeaders().putSingle("X-MyApp-Error",
"499 Our server is down and admin is on holiday. Mañana.");
不要。使用未註冊的狀態碼或依賴於原因短語是一個糟糕的主意。 –
在所有情況下都不是這樣。他們可能有一個很好的理由 - 例如。代理服務器會在路上的某個地方使用其他HTTP標頭。 –