我正在使用查询参数来设置 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 许可协议
如果您指定
@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 likefoobar?b=7
.这就是改造的工作原理。
当您指定
@GET("foobar?")
时,Retrofit 认为您已经提供了一些查询参数,并使用&
附加 更多 查询参数。删除
?
,您将获得所需的结果。