客户端程序(其中,content为要传输的json数据):
HttpPost httppost = new HttpPost( "http://xxxhost/api/my_path?mc=1"); HttpClient httpclient = HttpClientBuilder.create().build(); try { StringEntity reqEntity = new StringEntity(<strong><span style="color:#ff0000;">content</span></strong>); reqEntity.setContentType("application/json"); httppost.setEntity(reqEntity); HttpResponse httpresponse = httpclient.execute(httppost); HttpEntity entity = httpresponse.getEntity(); String body = EntityUtils.toString(entity); System.out.println(body);
@Path("/<span style="font-family: Arial, Helvetica, sans-serif;">my_path</span>") public class Events { @POST @Consumes(MediaType.APPLICATION_JSON) public Response addEvent(<strong><span style="color:#ff0000;">@QueryParam</span></strong>(ConfigItemConstants.CONFIG_ITEM_MC) String mc, Object eventStr){ if(!GenericValidator.isNullOrBlank(mc) && !ConfigItemUtil.verifyMC(mc)){//在这里,验证你传过来的mc参数,通过则继续 return ResponseUtil.setErrorResponse(403, "Forbidden", "User does not have access to this service!"); } EventService eventService = new EventService(); int code = 200; String resBody = ""; int rtn = 0; try { Long id = eventService.createEvent(eventStr);//传过来的json数据都在eventStr中,你可以根据需求自己处理,比如存储到NoSQL中。 rtn = 1; } catch (Exception e) { rtn = -1; e.printStackTrace(); } if(rtn == 1){ code = 201; resBody = "The event created successfully"; }else if(rtn == -1){ code = 400; resBody = "Format of request is not correct"; } // logger.exit(); if(rtn == 1){ return ResponseUtil.setResponse(code, resBody); } else { return ResponseUtil.setErrorResponse(code, "Bad Request", resBody); } } @Path("{delete}") @DELETE @Consumes(MediaType.APPLICATION_JSON) public Response deleteEvent(@QueryParam(ConfigItemConstants.CONFIG_ITEM_MC) String mc, String vehicleId){ if(!GenericValidator.isNullOrBlank(mc) && !ConfigItemUtil.verifyMC(mc)){ return ResponseUtil.setErrorResponse(403, "Forbidden", "User does not have access to this service!"); } EventService eventService = new EventService(); int code = 200; String resBody = ""; int rtn = 0; try{ Long id = eventService.deleteEvent(vehicleId); rtn = 1; }catch(Exception e){ rtn = -1; e.printStackTrace(); } if(rtn == 1){ code = 201; resBody = "The event created successfully"; }else if(rtn == -1){ code = 400; resBody = "Format of request is not correct"; } if(rtn == 1){ return ResponseUtil.setResponse(code, resBody); } else { return ResponseUtil.setErrorResponse(code, "Bad Request", resBody); } } }
准确来说一个是http post request端,一个是http post response端。实际上,这两个都是服务器容器App。