我正在尝试使用Jersey库构建RESTful API,但它给了我一个例外。 这是我的Docs课程
@XmlRootElement
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
public class Docs {
@XmlElement(name = "field")
public String field;
@XmlValue
public String content;
}
@Path("/update")
public class Update {
@POST
@Path("/xml")
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public String createIndexXML(Docs docs)
throws Exception {
System.out.println(docs.content);
return "It works";
}
}
如果我尝试使用CURL进行检查,则会抛出Error 415 Unsupported Media Type
curl -XPOST "http://localhost:8089/update/xml" -d '<docs>
<field>title</field>
</docs>'
答案 0 :(得分:1)
您需要将内容类型添加到请求标头中。添加-H "Content-Type: application/xml" to your
curl`来电。
我想你也会发现你的bean注释有问题 - 但这是另一个问题...
答案 1 :(得分:0)
这应该有效:
curl -H "Content-Type: application/xml"
-X POST -d "<docs><field>title</field></docs>" "http://localhost:8089/update/xml"
您还应该尝试Accept: application/xml
;注意定义@Produces
和@Consumes
!请参阅Using @Consumes and @Produces to Customize Requests and Responses。