Square最近发布了Retrofit v2.0.0
BETA,它具有对动态URL的内置支持。即使库是Beta版,根据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;}
我使用此方法构建restAdapter,然后在界面中使用它:( 如果您的URL添加了查询参数 ,则此方法
将不起作用。有关此情况的解决方案,请参见下一个答案)
public interface General { @GET("/") void getSomething(Callback<SomeObject> callback);}
最后像这样使用它们:
getHostAdapter("YOUR_DYNAMIC_URL").create(General.class) .getSomething(new Callback<SomeObject>(){ ... })
希望能帮助到你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)