好的,所以我使用Jersey在Java中构建RESTful服务。
我已经实现了非常有效的POST,它在我的数据库的Category表中创建了一个新行。现在,当我尝试执行DELETE时,我将其传递给JSON中的相同行,但它返回"400: Bad Request - the request cannot be fulfilled due to bad syntax"
。
我很困惑,因为JSON是在我对该特定类别进行GET时获得的结果中复制和粘贴的。
以下是相关代码:
@Path("/categories/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class CategoryResource {
@POST
public Response addCategory(Category category, @Context UriInfo uriInfo)
{
JSONArray json_array = category_service.addCategory(category);
URI uri = uriInfo.getAbsolutePathBuilder().path(category.getCategory_name()).build();
return Response.created(uri)
.status(Status.CREATED)
.entity(json_array.toString())
.build();
}
@DELETE
public Response deleteCategory(Category category)
{
System.out.println("Category = " + category.toString());
category_service.deleteCategory(category);
return Response.ok().build();
}
系统永远不会执行system.out.println(),因为它似乎无法对类别进行编码。 Category类在这里,充满了常见的getter和setter:
@XmlRootElement
public class Category {
private int category_id;
private String category_name;
private boolean child;
private int parent_id;
private boolean category_state;
private String category_reason;
public Category() {
}
原始传递的JSON如下所示:
{
"category_id": 1,
"category_name": "tennis",
"child": true,
"parent_id": 4,
"category_state": true,
"category_reason": "I Like Tennis"
}
请注意,这已从GET的结果中复制并粘贴....
答案 0 :(得分:0)
正如peeskillet的评论中所表明的那样,删除你不会给任何身体。