java – 使用JAX-RS中的Location头创建响应
我在NetBeans中自动生成具有来自实体的RESTful模板的类,具有CRUD功能(用POST,GET,PUT,DELETE注释).我有一个create方法的问题,在从前端插入一个实体后,我想创建更新一个响应,以便我的视图将自动(或异步地,如果这是正确的术语)反映添加的实体.
我遇到这个(例子)代码行,但是写在C#(其中我一无所知): HttpContext.Current.Response.AddHeader("Location","api/tasks" +value.Id); 在Java中使用JAX-RS,是否还可以像C#一样获取当前的HttpContext并操纵头? 我最近遇到的是 Response.ok(entity).header("Location","api/tasks" + value.Id); 这肯定不行.在构建响应之前,似乎需要获取当前的HttpContext. 谢谢你的帮助. 解决方法
我想你的意思是做一些类似Response.created(createdURI).build()的事情.这将创建一个具有
201 Created状态的响应,而createUri是位置头值.通常这是用POSTs完成的.在客户端,您可以调用将返回新URI的Response.getLocation().
从Response API > 请记住您为创建的方法指定的位置:
如果您不想依赖静态资源路径,可以从 @Path("/customers") public class CustomerResource { @POST @Consumes(MediaType.APPLICATION_XML) public Response createCustomer(Customer customer,@Context UriInfo uriInfo) { int customerId = // create customer and get the resource id UriBuilder builder = uriInfo.getAbsolutePathBuilder(); builder.path(Integer.toString(customerId)); return Response.created(builder.build()).build(); } } 这将创建位置… / customers / 1(或任何customerId是),并将其作为响应头发送 请注意,如果要发送实体以及响应,可以将 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |