首页 > 解决方案 > 在 Retrofit 2 中动态设置 URL 路径

问题描述

我们有一个使用 Retrofit 2 库的服务发现 API。消费应用程序中的一个示例使用是

mEurekaDiscoveryApi.getAvailableServices(Constants.SERVICE_ID).enqueue(// ...)

但是,我的团队负责人今天来找我说我应该SERVICE_ID进入客户端的构造函数,更改签名以便调用方法变为

mEurekaDiscoveryApi.getAvailableServices().enqueue(// ...)

我一直在玩 API,但还没有设法让它工作。

当前的

@GET("/eureka/apps/{appID}")
Call<ApplicationWrapper> getAvailableServices(@Path("appID") String appID);

实验性的

@GET(String.format("/eureka/apps/{appID}", getUrl()))
Call<ApplicationWrapper> getAvailableServices();

String getUrl();

问题是我得到一个编译时错误,说"Attribute value must be constant"

目标是在getAvailableServices()没有参数的情况下调用。有没有办法解决?还是我试图做的事情是不可能的?

标签: retrofit2

解决方案


推荐阅读