android - 使用改造动态设置 @GET 语句
问题描述
对 API 的示例请求是这个
https://api.example.com/api/3.0/song/{song_id}.json?apikey={your_api_key}
所以,在我的活动中
//retrofit
final Retrofit retrofit = new Retrofit.Builder()
.baseUrl(C.BASE_URL_DETAIL) // "https://api.example.com/api/3.0/song/"
.addConverterFactory(GsonConverterFactory.create())
.build();
SongInterface request = retrofit.create(SongInterface.class);
//call
Call<SongObject> call =request.getDetails(C.MY_API_KEY);
我的歌曲 id = 10973 的界面
@GET("10973.json?")
Call<SongObject> getDetails(
@Query("apikey") String key
);
它工作得很好,我按预期接收数据。但是,我不知道如何用另一个 id 调用另一首歌曲并重用代码。我可以以某种方式将 ID 添加为查询参数吗?(API 似乎没有设置为允许这样做)。如何将字符串动态更新到@GET 中的接口。我实现这一目标的尝试都以错误告终。
解决方案
嘿,是的,这是绝对正确的方式,所以发送“GET”请求,就像您要求获取具有相应 ID 的数据一样,这是您如何实现它
@GET("{songId}.json?")
Call<SongObject> getDetails(
@Path("songId") String songId,
@Query("apikey") String key
);
在此之后,您可以简单地调用它。
像这样
Call<SongObject> call = request.getDetails(YOUR_SONG_ID,C.MY_API_KEY);
推荐阅读
- vba - 如何使用以下兄弟 selenium vba 浏览各种类
- java - 如何从一些带有 lambdas 的列表中制作地图?
- flutter - Flutter,如何删除导航中的后退按钮?
- python - 使用 python importlib 导致丢失自动完成和 lint
- python - JSON 响应在一行中,需要转换为 Dataframe
- amazon-web-services - 从 AWS 服务访问放置在 VPN 后面的 Rest Endpoint
- javascript - 视频标签未在 Safari 中加载
- r - 需要解决的范围问题
- c# - C#。在达到 5 次失败尝试后,消息“您已用完猜测!它是数字”+ 数字永远不会显示,我需要帮助。谢谢
- azure-devops - Azure 管道自托管代理 - 是否应该有单独的用户来构建和部署?