改造 2 - URL 查询参数

新手上路,请多包涵

我正在使用查询参数来设置 Google Maps API 所需的值。

问题是第一个查询参数不需要 & 符号。

 @GET("/maps/api/geocode/json?")
    Call<JsonObject> getLocationInfo(@Query("address") String zipCode,
                                             @Query("sensor") boolean sensor,
                                             @Query("client") String client,
                                             @Query("signature") String signature);

改造生成:

 &address=90210&sensor=false&client=gme-client&signature=signkey

当我需要它时,这会导致调用失败

address=90210&sensor=false&client=gme-client&signature=signkey

我该如何解决?

原文由 Alan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 391
1 个回答

如果您指定 @GET("foobar?a=5") ,那么任何 @Query("b") 必须使用 & 附加,产生类似 foobar?a=5&b=7

If you specify @GET("foobar") , then the first @Query must be appended using ? , producing something like foobar?b=7 .

这就是改造的工作原理。

当您指定 @GET("foobar?") 时,Retrofit 认为您已经提供了一些查询参数,并使用 & 附加 更多 查询参数。

删除 ? ,您将获得所需的结果。

原文由 Andreas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题