2014-08-27 262 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