关于RESTful Web服务

时间:2014-08-27 13:28:13

标签: java web-services rest

我曾经打算写一个RESTful webservice,但是当我完成它时,我发现我不能使用RESTClient来测试它。

我的代码是这样的:

      //-------------------------
      @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

但我得到了#34; HTTP状态415 - 不支持的媒体类型&#34;。

那么,我能做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:0)

当你发送HTTP POST时,明确设置标题"Content-Type: application/xml",这应该可以解决问题。

答案 1 :(得分:0)

您的RESTful服务接受以下Mime类型(MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON),您需要设置内容类型标题,即

  

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

如果您使用Chrome来测试您的RESTful服务,那么Advanced Rest Client是一个很好的插件,它有一个内容类型下拉列表,您可以从中选择流行的或添加自己的。我确定Firefox有类似的插件