调用Jersey api时无法指定接受哪种响应类型

时间:2011-04-04 21:53:34

标签: xml json rest jaxb jersey

我有一个之前设置用于响应XML的Jersey api(JAXB编组,@ Produces(“application / xml”))。我现在想要添加使用JAXB / JSON兼容性以JSON格式请求响应的功能。

我将@Produces注释的参数更改为{“application / json”,“application / xml”},它将JSON设置为默认响应类型。然后,我使用cUrl进行以下调用以通过电子邮件获取用户:

curl -k https://api.mywebservice.com/service/user/email/foo@bar.com

按预期返回JSON响应。

curl -k -H "accepts: application/xml" -H "content-type: application/xml" https://api.mywebservice.com/service/user/email/foo@bar.com

会产生JSON响应。

当然,我做的第一件事是将注释切换为@Produces {“application / xml”,“application / json”}然后再也无法获得JSON响应,即使我在标题中指定了一个。

任何想法或建议都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:4)

标题名为Accept,因此您需要调用:

curl -k -H "accept: application/xml" https://api.mywebservice.com/service/user/email/foo@bar.com

Content-Type标头用于指定在POST或PUT请求中发送到服务器的媒体数据类型,因此您应该将其留给GET请求。