RESTful Web服务中的@POST

我一直在尝试使用Jersey了解RESTful Web服务中的@POST。 我已经通过http://www.vogella.com/articles/REST/article.html了解相同的内容,并且能够获得有关@POST的一些信息,但感到困惑和笨拙。 任何人都可以通过一个简单的例子解释@POST或分享相同的链接。

在上面的链接中通过TODO对象实现@POST很好,但是我希望通过其他一些简单的例子学习@POST,这样我就可以继续开发自己复杂的@POST示例了。

帮助将是值得的,谢谢。

请查看下面的示例,它可能对您有所帮助

package jersey.rest.test; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.HEAD; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/hello") public class SimpleService { @GET @Path("/{param}") public Response getMsg(@PathParam("param") String msg) { String output = "Get:Jersey say : " + msg; return Response.status(200).entity(output).build(); } @POST @Path("/{param}") public Response postMsg(@PathParam("param") String msg) { String output = "POST:Jersey say : " + msg; return Response.status(200).entity(output).build(); } @POST @Path("/post") //@Consumes(MediaType.TEXT_XML) public Response postStrMsg( String msg) { String output = "POST:Jersey say : " + msg; return Response.status(200).entity(output).build(); } @PUT @Path("/{param}") public Response putMsg(@PathParam("param") String msg) { String output = "PUT: Jersey say : " + msg; return Response.status(200).entity(output).build(); } @DELETE @Path("/{param}") public Response deleteMsg(@PathParam("param") String msg) { String output = "DELETE:Jersey say : " + msg; return Response.status(200).entity(output).build(); } @HEAD @Path("/{param}") public Response headMsg(@PathParam("param") String msg) { String output = "HEAD:Jersey say : " + msg; return Response.status(200).entity(output).build(); } } 

对于测试,您可以使用任何工具,如RestClient(http://code.google.com/p/rest-client/)

REST webservice 🙁 http:// localhost:8080 / your-app / rest / data / post)

 package com.yourorg.rest; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path("/data") public class JSONService { @POST @Path("/post") @Consumes(MediaType.APPLICATION_JSON) public Response createDataInJSON(String data) { String result = "Data post: "+data; return Response.status(201).entity(result).build(); } 

客户发post:

 package com.yourorg.client; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; public class JerseyClientPost { public static void main(String[] args) { try { Client client = Client.create(); WebResource webResource = client.resource("http://localhost:8080/your-app/rest/data/post"); String input = "{\"message\":\"Hello\"}"; ClientResponse response = webResource.type("application/json") .post(ClientResponse.class, input); if (response.getStatus() != 201) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); } System.out.println("Output from Server .... \n"); String output = response.getEntity(String.class); System.out.println(output); } catch (Exception e) { e.printStackTrace(); } } }