我正在使用基于@ResponseBody的spring boot方法,如下所示:
@RequestMapping(value = VIDEO_DATA_PATH, method = RequestMethod.GET)
public @ResponseBody Response getData(@PathVariable(ID_PARAMETER) long id, HttpServletResponse res) {
Video video = null;
Response response = null;
video = videos.get(id - 1);
if (video == null) {
// TODO how to return 404 status
}
serveSomeVideo(video, res);
VideoSvcApi client = new RestAdapter.Builder()
.setEndpoint("http://localhost:8080").build().create(VideoSvcApi.class);
response = client.getData(video.getId());
return response;
}
public void serveSomeVideo(Video v, HttpServletResponse response) throws IOException {
if (videoDataMgr == null) {
videoDataMgr = VideoFileManager.get();
}
response.addHeader("Content-Type", v.getContentType());
videoDataMgr.copyVideoData(v, response.getOutputStream());
response.setStatus(200);
response.addHeader("Content-Type", v.getContentType());
}
我尝试了一些典型的方法,如:
res.setstatus(httpstatus.not_found.value());
新建ResponseEntity(httpstatus.bad_request);
但我需要回复。
如果视频为空,如何返回404状态码?
您可以在RE上设置responseStatus,如下所示:
@RequestMapping(value = VIDEO_DATA_PATH, method = RequestMethod.GET)
public ResponseEntity getData(@PathVariable(ID_PARAMETER) long id,
HttpServletResponse res) {
...
res.setStatus(HttpServletResponse.SC_NOT_FOUND);
// or res.setStatus(404)
return null; // or build some response entity
...
}
您的原始方法可以返回ResponseEntity(不改变您的方法行为):
@RequestMapping(value = VIDEO_DATA_PATH, method = RequestMethod.GET)
public ResponseEntity getData(@PathVariable(ID_PARAMETER) long id, HttpServletResponse res{
...
}
并返回以下内容:
return new ResponseEntity(HttpStatus.NOT_FOUND);
创建一个带有@ResponseStatus(HttpStatus.Not_Found)
批注的NotFoundException
类,并从您的控制器中抛出它。
@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "video not found")
public class VideoNotFoundException extends RuntimeException {
}
问题内容: 我正在将Spring Boot与基于@ResponseBody的方法结合使用,如下所示: 我尝试了一些典型的方法,例如: res.setStatus(HttpStatus.NOT_FOUND.value()); 新的ResponseEntity(HttpStatus.BAD_REQUEST); 但是我需要返回Response。 如果视频为空,如何在此处返回404状态代码? 问题答案:
我希望在spring boot中返回类似以下内容的json响应: 我的RestController如下所示 但我得到的反应是这样的
本文向大家介绍symfony2 返回404响应,包括了symfony2 返回404响应的使用技巧和注意事项,需要的朋友参考一下 示例 当在服务器上找不到资源时,将返回404响应。在Symfony中,可以通过引发NotFoundHttpException异常来创建此状态。为了避免use在控制器内部添加多余的语句,请使用类createNotFoundException()提供的Controller
Koa Response 对象是对 node 的 response 进一步抽象和封装,提供了日常 HTTP 服务器开发中一些有用的功能。 API response.header Response header 对象。 response.headers Response header 对象。等价于 response.header. response.socket Request socket. re
我试图编写一个方法,它接受@PathVariable参数,并将用户重定向到一个jsp文件。 @pathvariable(value=“customerId”)字符串customerId @pathvariable(name=“customerId”)字符串customerId @pathvariable(“customerId”)字符串customerId 谢谢你的帮助。
我使用spring MVC来创建一个简单的JSON API,使用基于的方法,如下所示。(我已经有一个直接生成JSON的服务层。) 问题是,在给定的场景中,什么是响应HTTP 400错误的最简单、最干净的方法? 我确实遇到过这样的做法: ...但我不能在这里使用它,因为我的方法的返回类型是String,而不是ResponseEntity。