2014-09-24 57 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(); 
相關問題