英文:
Retrofit2 Dynamically change endpoint
问题
Here is the translated part:
这是翻译好的部分:
是否可以动态更改一个端点<br>。
我有以下代码,它正在工作<br>。
现在我想要使用相同的函数,根据一些参数,端点更改为/api/v1/contents。<br>
动态更改"/api/v1/contents_dev"为"/api/v1/contents"。
英文:
Is it possible to dynamically change an endpoint.<br>
I have the following code which is working.<br>
Now I want to use the same function, and depending of some parameters the endpoint changes to /api/v1/contents. <br>
Changing "/api/v1/contents_dev" to "/api/v1/contents" dynamically.
@GET("/api/v1/contents_dev")
fun cmsContents(
@Query("fields") fields: String,
@Query("ids") ids: String,
@Query("filters") filters: String
): Observable<ContentsDevModel>
fun getCmsContents(
context: Context,
observer: Observer<ContentsDevModel>
): Subscription {
return create(context)
.cmsContents(
"linkType.linkUrl,image",
"89746946",
"rain"
)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer)
}
答案1
得分: 2
你可以使用@Path
注解来实现这一点。
@GET("/api/v1/{thePath}")
fun cmsContents(
@Path("thePath") path: String,
@Query("fields") fields: String,
@Query("ids") ids: String,
@Query("filters") filters: String
): Observable<ContentsDevModel>
英文:
You can use the @Path
annotation for that.
@GET("/api/v1/{thePath}")
fun cmsContents(
@Path("thePath") path: String,
@Query("fields") fields: String,
@Query("ids") ids: String,
@Query("filters") filters: String
): Observable<ContentsDevModel>
答案2
得分: 1
@GET("/api/users/{dynamic_params}")
public Call<UserApiResponse> getUser(@Path("dynamic_params") String dynamic_params);
or if you can use @ url parameters
@GET
Call<ResponseBody> dynamicurl(@Url String url);
英文:
@GET("/api/users/{dynamic_params}")
public Call<UserApiResponse> getUser(@Path("dynamic_params") String dynamic_params);
or if you can use @ url parameters
@GET
Call<ResponseBody> dynamicurl(@Url String url);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论