retrieve JsonObject in POST with jersey

前端 未结 3 1649
我寻月下人不归
我寻月下人不归 2021-01-03 04:50

I have some problems in my application, I send a POST request, but I cannot retrieve the JsonObject in my server, this is the code to send:

String quo = \"{\         


        
3条回答
  •  说谎
    说谎 (楼主)
    2021-01-03 05:39

    There's a simple way to get the JsonObject in com.google.gson.JsonObject type using a post request.

    I am assuming that all the dependencies for com.google.gson , jersey and jax-rs are already added.

    On the server side you need to have code similar to below :

    import com.google.gson.JsonObject;
    import com.google.gson.JsonParser;
    
    import javax.ws.rs.Consumes;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.core.Response;
    
    @Path("/api")
    public class JersyAPI {
    
    
        private JsonParser parser= new JsonParser();
    
        @POST
        @Path("/pudding")
        @Consumes("application/json")
        public Response postTest(String requestBody){
            Response re = Response.status(200).build();
            try{
                JsonObject inputObjectJson = parser.parse(requestBody).getAsJsonObject();
    

    The code above has a rest endpoint defined with path /api/pudding and it is accepting the Request Body as String. Once you receive the Json as string on server side, com.google.gson.JsonParser can be used to convert it into the com.google.gson.JsonObject directly and this can be used in your program.

    To make a request on server side you post request should look like this :

    POST /rest/api/pudding HTTP/1.1
    Host: localhost:8082
    Content-Type: application/json
    Cache-Control: no-cache
    Postman-Token: c2b087d9-4830-c8a8-2a19-78273a73898c
    
    {
      "id": 1312312,
      "name": "Test",
      "data": { 
                "test" : "data"
            },
    }
    

提交回复
热议问题