【问题标题】:Retrofit - Pass parameter in GET request with "/" form改造 - 以“/”形式在 GET 请求中传递参数
【发布时间】:2016-10-01 10:20:39
【问题描述】:

这是我要获取的 API:http://itunes.apple.com/us/rss/topsongs/limit=20/genre=29/explicit=true/json

如何以编程方式将“29”替换为另一个数字?

我已经阅读了许多文档,但它们都具有相同的“?”形式。例如:https://api.example.com/tasks?id=123。我无法将他们的解决方案应用于我的问题。

感谢您的帮助。

【问题讨论】:

  • genre=29 将始终为 29,或者也可能是其他数字?
  • 如果我将 29 替换为 22、20、25 等……API 将返回不同的结果
  • 你不应该替换任何东西。相反,您应该建立您的 url 并直接添加参数及其值。就像如果有一个?
  • "29" 可以替换为从不同 API 返回的其他数字。如果我建立我的网址并直接添加参数及其值,我的代码会很长:'(
  • 尝试查询或路径注释

标签: android parameters get retrofit


【解决方案1】:

试试这个

@GET("users/{user}/repos")

Call<Response> listRepos(@Path("user") String user)

【讨论】:

    【解决方案2】:

    试试

    int your_number = 20;
    String url = "http://itunes.apple.com/us/rss/topsongs/limit=20/genre=29/explicit=true/json;"
    url = url.replace("genre=29", "genre"+your_number);
    

    现在使用 url 进行请求。

    【讨论】:

    • 它不起作用 :( 方法 @GET(url) 需要一个最终的字符串 url,我无法为其赋值 :(
    • 是的。每当您传递 url 时,通过运行上面的代码来传递它
    • 在这种情况下检查this是否有帮助
    • 感谢您的帮助!它适用于更改 BaseURL :D
    猜你喜欢
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多