2014-08-27 3 views
0

Раньше я использовал, чтобы написать веб-сервис RESTful, но когда я его закончил, я обнаружил, что не могу проверить его с помощью RESTClient.О веб-службе RESTful

Мой код выглядит так:

 //------------------------- 
     @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 Status 415 - неподдерживаемый тип медиа".

Итак, что я могу сделать для решения проблемы?

ответ

0

Когда вы отправляете HTTP POST, задайте явно заголовок "Content-Type: application/xml", это должно решить проблему.

+0

Да, я сделал это и решила проблему. Спасибо большое. –

0

Вы RESTful сервис принимает следующие типы Mime (MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON), вам необходимо установить Content Type заголовка, т.е.

Content-Type: применение/XML; кодировка = UTF-8

Если вы используете Chrome, чтобы проверить ваш успокоительных Service, то Advanced Rest Client хороший плагин для использования, он имеет тип контента выпадающие где вы можете выбрать один из популярных или добавить свои собственные. Я уверен, что есть похожие плагины для Firefox

+0

В этом конкретном случае автор отправляет XML, поэтому application/json не будет корректным. – leveluptor

+0

Я обновил его – omerio