我正在以以下方式测试 DELETE 动词,这似乎工作得很好。
@Test
public void testDelete() throws Exception {
WebResource webResourceTest = webResource.path("/deletesomestuff/delete").queryParam("FT","From Test");
final String responseString = webResourceTest.type(MediaType.TEXT_PLAIN).delete(String.class);
Assert.assertEquals("Request fulfilled.", responseString);
}
这将返回我在字符串中所追求的内容。这是实际 DELETE API 调用的片段。
@DELETE
@Path("/delete")
@Produces(MediaType.TEXT_PLAIN)
public Response delete(@PathParam("/delete") String deleteString) {
<snip>
return Response.status(204).entity("Request fulfilled.").build();
}
DELETE 调用也可以正常工作并返回正确的字符串,但我的问题是这个。如何获取通过 WebResource 返回的响应状态?我似乎无法找到一种方法来检索它。测试按原样工作,但我只是想知道是否可以从 WebResource 中提取响应。现在,当我从 junit 测试中使用 ClientResponse 时,我总是收到 200。
我还用 curl 测试了 DELETE API 调用:
curl -i -X DELETE /webapi/deletesomestuff/delete?FT=From+Test
HTTP/1.1 204 No Content
Server: Apache-Coyote/1.1
Content-Type: text/plain
Date: Mon, 08 Jul 2013 18:11:13 GMT
204 被退回。
谢谢!