[英]Ho to set status code 400 in response object
我正在使用 javax.ws.rs-api 中的 Response 對象,即使我可以設置像 Response.status(Response.status.BAD_REQUEST).build() 這樣的狀態,返回的響應代碼始終為 200,響應主體包含 statusInfo表示 BAD_REQUEST 的參數。 有沒有辦法根據服務器端輸入的一些驗證將響應代碼設置為 400?
不是僅僅設置響應狀態,而是從服務層拋出錯誤並讓它傳播到控制器。 在控制器中你可以有類似的東西
@Controller
public class MyService {
@RequestMapping(value = "your api url path", method = RequestMethod.GET, produces = "application/
public Response jsonAccounts(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return Response.status(Response.Status.BAD_REQUEST).entity("Bad request received").build();
}
@ExceptionHandler(MyBadException.class)
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Bad request Request Exception")
public void unexpectedError(HttpServletRequest request, Exception
log.debug("return HttpStatus.BAD_REQUEST, unexpectedError due to Exception", e);
}
}
這對我有用,我測試過。
@GET
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
public Response getTestResult() {
logger.info("Requested Test Service");
try {
Object result = "";[enter image description here][1]
return Response.status(Response.Status.BAD_REQUEST)
.entity(result).build();
} catch (Exception e) {
return Response.ok("error", e.getMessage()).build();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.