在改造中使用绝对URL

在改造中使用绝对URL,第1张

在改造中使用绝对URL

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>(){        ...    })

希望能帮助到你。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5489482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存