2015-11-09 14 views
0

現在我有一個名爲Users.java RESTful Web服務,這假將用戶添加到一個數據庫假如何製作HTTP刪除/更新請求?

@Path("/users") 
public class UsersService { 

    @POST 
    public Response handlePost(String requestBody) { 
     addUserToDatabase(requestBody); 

     Map<String, Object> jsonMap = new HashMap<>(); 
     jsonMap.put("status", "success"); 
     jsonMap.put("resource-uri", "https://stackoverflow.com/users/12"); // assume 12 is the ID of the user we pretended to create 
     Gson gson = new Gson(); 

     return Response.status(200).entity(gson.toJson(jsonMap)).build(); 
    } 

    private boolean addUserToDatabase(String requestBody) { 
     Gson gson = new Gson(); 
     Map<String, String> user = gson.fromJson(requestBody, new TypeToken<Map<String, String>>() { 
     }.getType()); 
     for (String key : user.keySet()) { 
      System.out.println(key + ": " + user.get(key)); 
     } 
     return true; // lie and say we added the user to the database 
    } 

} 

它是在這裏使用POST請求調用,這些都是例子

public HttpResponse postRequest(String relativePath, Map<String, String> map){ 
    try { 

     String fullPath = buildURL(relativePath); 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost getRequest = new HttpPost(fullPath); 
     Gson gson = new Gson(); 
     String postEntity = gson.toJson(map); 
     getRequest.setEntity(new StringEntity(postEntity)); 
     getRequest.addHeader("accept", "application/json"); 
     HttpResponse response = httpClient.execute(getRequest); 
     httpClient.getConnectionManager().shutdown(); 

     return response; 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

    // POST 
    Map<String, String> map = new HashMap<>(); 
    map.put("username", "Bill"); 
    map.put("occupation", "Student"); 
    map.put("age", "22"); 
    map.put("DOB", "" + new Date(System.currentTimeMillis())); 
    HttpResponse response = client.postRequest("/api/users", map); 
    client.printResponse(response); 

現在我想要做類似的刪除和更新,但不知道從哪裏開始任何幫助將是偉大的

回答

2

使用適當的@Path,@Delete@Put註釋和實現以類似於您爲@Post所做的方式使用這些方法。