2014-08-27 240 views
0

我曾經寫過一個REST風格的web服務,但是當我完成它時,我發現我無法通過使用RESTClient來測試它。關於REST風格的Web服務

我的代碼是這樣的:

 //------------------------- 
     @POST 
     @Path("add") 
     @Produces(MediaType.TEXT_HTML) 
     @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) 
     public String addCategory(Category category) { 
      System.out.println("處理添加類別邏輯,接受的數據爲id:" + category.getId() 
      + ",name:" + category.getName()); 
      return "ok"; 
     } 

     //------------------------- 
     @XmlRootElement 
     public class Category { 
     private int id; 
     private String name; 
     public Category(){} 
     public Category(int id, String name){ 
      this.id = id; 
      this.name = name; 
     } 
     these are getter and setters 
     ... 
     //--------------------- 

什麼s more, I sent a POST HTTP who的身體是

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
     <category> 
     <id>1</id> 
     <name>No.1 category</name> 
     </category>aaa 

但我得到了一個 「HTTP狀態415 - 不支持的媒體類型」。

那麼,我能做些什麼來解決這個問題呢?

回答

0

當您發送HTTP POST時,明確設置標頭"Content-Type: application/xml",這應該解決問題。

+0

是的,我做到了這一點,並解決了這個問題。謝謝很多。 – 2014-08-27 14:00:30

0

您RESTful服務接受以下MIME類型(MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON),則需要設置內容類型報頭即

的Content-Type:application/xml進行;字符集= UTF-8

如果您使用Chrome瀏覽器測試RESTful服務,則Advanced Rest Client是一個很好的插件來使用,它有一個內容類型下拉在那裏你可以從流行的選擇或添加你自己的。我敢肯定,有類似的插件火狐

+0

在這種情況下,作者正在發送XML,所以application/json將不正確。 – leveluptor 2014-08-27 13:52:29

+0

我已更新它 – omerio 2014-08-27 14:50:15