当前位置: 首页 > 面试题库 >

改造2-URL查询参数

詹钊
2023-03-14
问题内容

我正在使用查询参数来设置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

我该如何解决?


问题答案:

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

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

这就是改造的工作方式。

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

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



 类似资料:
  • 我正在使用一个查询参数来设置Google Maps API所需的值。 改装生成: 这会在需要时导致调用失败 我怎么解决这个?

  • 问题内容: 我想知道是在URL中使用矩阵还是查询参数。我发现对该主题的较早讨论并不令人满意。 例子 带有查询参数的URL:http://some.where/thing?paramA = 1&paramB = 6542 带有矩阵参数的URL:http://some.where/thing; paramA = 1; paramB = 6542 乍看之下,矩阵参数似乎只有优点: 更具可读性 不需要对X

  • 问题内容: 如何在Java中将查询参数编码为URL?我知道,这似乎是一个显而易见且已经提出的问题。 我不确定有两个微妙之处: 网址上的空格应该编码为“ +”还是“%20”?在chrome中,如果我输入“ http://google.com/foo=?bar me”,则chrome会将其更改为使用%20进行编码 是否有必要/正确将冒号“:”编码为%3B?Chrome没有。 笔记: 似乎不起作用,似乎

  • 在vuejs回调URL中,我有一些参数值,需要读取此参数值。例如,返回url为: ,但我有空值。 有没有办法获取vuejs中的参数值?

  • 我有一个apikey“令牌”,它必须在每个请求中作为查询参数提供。我如何设置翻新,以便始终在请求中包含此查询参数? 我当前将内标识作为默认参数提供: 但是由于我知道每个请求都需要相同的令牌,所以在我创建的每个请求函数中必须提供它作为默认参数,这感觉是多余的。我如何设置reverfit来用默认的查询参数修饰每个传出的请求? 这是我如何构建reverfit2实例的: 我认为在调用.build()之前,

  • 目前,我在改装方面面临一些问题。对于第二个请求,我提供给ReformInstance的URL正在更改。以下是代码: 以下是针对不同API请求的接口方法: UrlEndPoints.kt 对于第一个请求(loginUserByFacebook),我通过调试响应获得的URL是: http://test.sample.com/req/v1/user/auth/facebook 这很好,工作也很好。但是对