Retrofit2没有URL参数的关键名称

时间:2017-06-30 10:26:59

标签: android http get retrofit2

我使用的是Retrofit2

我需要问api,只是看起来像那样 http://1.1.1.1/get?key=value1&value2

如何才能使用只有值的查询?作为上面例子中的value2? 我在这里尝试过: Retrofit no key name on URL parameter

  • 改造改造?签到%3F。
  • @Query("")会做这样的事情& = value2
  • 带有空值的@QueryMap("")将类似于此类& value2 =

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

在这种情况下,您可以直接调用整个网址。

@GET()
Call<ResponseVO> test(@Url() String url);

并致电

test("http://1.1.1.1/get?key=value1&value2")

答案 1 :(得分:2)

使用最新版本的Retrofit2 @QueryName

@GET("http://1.1.1.1/get")
Call<Object> getYourData(@Query("key") String key, @QueryName String value);

调用该方法时,每个查询名称都将附加到URL。您可以在此处查看JavaDoc:https://square.github.io/retrofit/2.x/retrofit/retrofit2/http/QueryName.html

答案 2 :(得分:0)

请将查询参数值value1&amp; value2编码为value1%26value2,如

http://1.1.1.1/get?key=value1&value2

http://1.1.1.1/get?key=value1%26value2

当你进入时

@GET("http://1.1.1.1/get?")
Call<Object> getYourData(@Query("key") String value);

答案 3 :(得分:-1)

@GET("http://1.1.1.1/get?key=value")
Call<Object> getYourData(@Query("value") String value);

然后当你调用“getYourData”时,只需将value1和value2放在不同的字符串中并连接它们并将该新字符串传递给“getYourData”方法。

P.S别忘了这个标志“&amp;”将两个字符串合并在一起时。