【问题标题】:java.lang.IllegalArgumentException error on Retrofit改造时出现 java.lang.IllegalArgumentException 错误
【发布时间】:2019-02-13 13:45:38
【问题描述】:

我想获取有关 Internet 使用 Retrofit Library 的数据 我的代码如下所示:

@GET("?key={key}&q={quotes}")
Call<List<Pixabay.hits>> getTheData(@Query("key") String key, @Query("quotes") String quotes);

java.lang.IllegalArgumentException: URL 查询字符串key={key}&amp;q={quotes} 不能有替换块。对于动态查询参数,使用@Query。 对于方法api.getTheData

我遇到了这个问题,如何解决这个问题?谢谢你。

【问题讨论】:

    标签: android retrofit


    【解决方案1】:

    您不必在路径中编写查询参数。 @Query 会为你做这件事。

    替换

    @GET("?key={key}&q={quotes}")
    

    @GET("/")
    

    准确地说,{something} 参数只能在路径变量中使用。 例如,

    @GET("/key/{key}")
    

    在这种情况下,您可以使用@Path 注解代替@Query

    【讨论】:

      【解决方案2】:

      如果您指定 @GET("key?a=5"),则任何 @Query("b") 都必须使用 & 附加,产生类似 key?a=5&b=7 的内容。

      如果您指定 @GET("key"),则必须使用 ? 附加第一个 @Query,生成类似 key?b=7 的内容。

      因此,在您的情况下,无需像 ?key={key}&q={quotes} 那样在此处实现,只需添加 你的域名@GET("your_domain/")

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      • 2023-04-01
      相关资源
      最近更新 更多