我有一个之前设置用于响应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响应,即使我在标题中指定了一个。
任何想法或建议都将不胜感激。感谢。
答案 0 :(得分:4)
标题名为Accept
,因此您需要调用:
curl -k -H "accept: application/xml" https://api.mywebservice.com/service/user/email/foo@bar.com
此Content-Type
标头用于指定在POST或PUT请求中发送到服务器的媒体数据类型,因此您应该将其留给GET请求。