Kay*_*n N 23
最近Square发布了Retrofit v2.0.0 BETA,它内置了对动态URL的支持.即使图书馆处于测试阶段,根据Jake Wharton在DroidCon NYC 2015中告诉我们的情况,所有的api都是稳定的,不会改变.我个人将它添加到我的作品中,所以由你决定.
如果您决定进行升级,您会发现以下链接很有用:
Jake Wharton演示@DroidCon NYC 2015
关于变化的非常好的指南
简单来说,您现在可以在没有任何路径的情况下使用api注释(如@GET或@POST等),然后将@URL传递给方法将用于调用的api方法.
----------------改造1.x
我想出了一个很好的方法,并希望分享它.
诀窍是在创建RestAdapter时使用动态URL作为终点,然后在API接口上使用空路径.
我是这样做的:
public RestAdapter getHostAdapter(String baseHost){
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(baseHost)
.setRequestInterceptor(requestInterceptor)
.build();
return restAdapter;
}
Run Code Online (Sandbox Code Playgroud)
我使用这种方法构建我的restAdapter然后我在我的界面中有这个:(
如果你的URL添加了查询参数,这将不起作用.请参阅下一个答案以获得该案例的解决方案)
public interface General {
@GET("/")
void getSomething(Callback<SomeObject> callback);
}
Run Code Online (Sandbox Code Playgroud)
最后像这样使用它们:
getHostAdapter("YOUR_DYNAMIC_URL").create(General.class)
.getSomething(new Callback<SomeObject>(){
...
})
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
20247 次 |
| 最近记录: |