【问题标题】:I want to request a variable address我想请求一个可变地址
【发布时间】:2019-08-06 17:30:33
【问题描述】:

我在自己的程序中写了以下命令,但是错误

    @GET("top-headlines?sources="+"{source}"+"&apiKey=***")
    fun getnewssource(@Path("source") sourceID:String):Call<ModelsResponse>

错误:

    java.lang.IllegalArgumentException: URL query string "sources={source}&apiKey=***" must not have replace block. For dynamic query parameters use @Query.

我想每次都发送不同的源地址

【问题讨论】:

  • 使用@Query 而不是@Path。
  • 然后我有一个参数要发送到那个不正确的地址我想自己更改那个地址
  • source 和apiKey 是你要从服务器获取的参数吗?
  • 是的。我查看了 Retrofit 自己的描述。它的写法相同,但它不起作用。 Retrofit
  • 不一样。您发送给我的链接是创建一个动态 url。但是您的是将两个参数发送到服务器端。检查我的答案。

标签: android android-studio kotlin retrofit


【解决方案1】:

试试这个,它会起作用的。您应该添加查询而不是路径。

@GET("top-headlines")
     fun getnewssource(@Query("sources") sourceID:String,
                       @Query("apiKey") apiKey:String):Call<ModelsResponse>

【讨论】:

  • 然后我有一个参数要发送到那个不正确的地址我想自己更改那个地址
  • 哪个参数?如果需要,您可以发送请求正文或字段以及查询。
  • 例如地址应该改变如下:top-headlines? sources = bbc-news &amp; apiKey = ***
  • 所以,这个答案会起作用,因为你可以用不同的“来源”调用这个 API。
  • 感谢您的帮助。我也试过你发的这个。它不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 2015-01-07
  • 1970-01-01
相关资源
最近更新 更多