改造覆盖端点

我可以覆盖RestAdapter构建器上设置的端点路径吗? 所以说我有20个端点使用相同的基本URL,但有1个端点没有。 我想调用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();