2014-09-24 43 views
0

迫使我有一个共享的API和服务的注释如何使用特定的MediaType在RestEasy的客户

@Produces({"application/json","application/x-jackson-smile"}) 
@Consumes({"application/json","application/x-jackson-smile"}) 
public class AServiceClass { 

所以默认是JSON - 这将使用浏览器的AJAX调用时是首选。

但是我有我创建使用

ProxyFactory.create(AServiceClass.class, url) 

一个RestEasy的客户端,我想这个客户端使用SMILE入站和aoutbound通信。当然,它会从@Consumes中挑选第一个项目,然后尝试编组为JSON。

我使用RestEasy的2.3.5

如何强制客户端使用SMILE编组?

如何强制客户端接受SMILE而不是JSON?

回答

0

事实上,事实证明,你(我的意思是我:-))不能这样做

检查MediaTypeHelper.getConsumes()显示总是第一个挑选注解值以确定编组媒体类型。

return MediaType.valueOf(consume.value()[0]); 

当找出接受标题时,也会发生同样的情况。该代码使用MediaTypeHelper.getProduces()

0

它可以通过指定报头中的值来实现接受

   Response response = client.target(host + "/yourpath").request() 
       .header(HttpHeaders.ACCEPT, "application/x-jackson-smile") 
       .get(); 
相关问题