Armeria Retrofit 可以使用 @Url 了
最近送了一個 PR 給 Armeria ,終於讓 Armeria 上的 Retrofit 可以使用 @Url
了。之前不行主要是因為 Armeria 的 HttpClient 本身就已經綁在某個 authority 上,所以無法在之後存取不同 authority。現在改成依照 authority 是否相同再產生一個新的 HttpClient 處理。
interface MyService { @GET("/userInfo/{id}") CompletableFuture<UserInfo> getUserInfo(@Path("id") String id); CompletableFuture<ResponseBody> getContent(@Url String url); } Retrofit retrofit = new ArmeriaRetrofitBuilder() .baseUrl("http://localhost:8080/") .addConverterFactory(JacksonConverterFactory.create()) .addCallAdapterFactory(Java8CallAdapterFactory.create()) .build(); MyService service = retrofit.create(MyService.class); service.getContent("http://example.com");
但是 Retrofit 還真不錯,把 Call.Factory
換掉就可以想辦法換掉 http engine。