@POST in RESTful web service

前端 未结 2 2073
情深已故
情深已故 2020-12-23 14:11

I have been trying to understand @POST in RESTful web service using Jersey. I have gone through http://www.vogella.com/articles/REST/article.html for the same and was able t

相关标签:
2条回答
  • 2020-12-23 14:55

    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(); 
        }
    

    Client send a 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();
    
          }
    
        }
    }
    
    0 讨论(0)
  • 2020-12-23 15:03

    Please find example below, it might help you

    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();
        }
    }
    

    for testing you can use any tool like RestClient (http://code.google.com/p/rest-client/)

    0 讨论(0)
提交回复
热议问题