我可以覆盖设置的端点路径吗RestAdapter
建造者?假设我有 20 个端点使用相同的基本 URL,但有 1 个端点不使用相同的基本 URL。我想调用 setEndpoint 供所有 20 个使用,但在我需要使用不同基本 URL 的一种情况下重写。
Builder builder = new RestAdapter.Builder().setEndpoint("http://url");
使用构建器上设置的端点路径:
@GET("/relative
Something getClip();
使用绝对路径(不起作用):
@GET("http://absolute/path")
Something getAlert();
每次发出请求时,RestAdapter 实际上都会咨询 EndPoint。这意味着您可以实现自己的并将其传递到 RestAdapter 中。保留对它的引用意味着您可以在需要时更改 url。
public final class FooEndpoint implements Endpoint {
private String url;
public void setUrl(String url) {
this.url = url;
}
@Override public String getName() {
return "default";
}
@Override public String getUrl() {
if (url == null) throw new IllegalStateException("url not set.");
return url;
}
}
然后简单地做这样的事情
FooEndPoint endPoint = new FooEndPoint();
// Keep a reference to this instance
endPoint.setUrl("url1");
RestAdapter.Builder builder = new RestAdapter.Builder();
builder.setEndpoint(endPoint);
SomeApi api = builder.build().create(SomeApi.class);
api.getSomeDataFromUrl1();
// when needed you can update the url
endPoint.setUrl("url2");
api.getSomeDataFromUrl2();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)