我正在使用retrofit:2.1.0
,我正在尝试构建一个GET(从未见过)URI,如下所示:
https://api.endpoint.net/v1/getValues?userID=456&imgID=37&infoToken=values:imgSize=200,imgTypeDefault=true&cropped=false
在上面的URI中,我在infoToken=values:imgSize=200,imgTypeDefault=true
中使用逗号分隔的查询参数,而动态填充imgSize
,imgTypeDefault
是静态的,并且:
userID
,imgID
也会动态填充。
@GET("/v1/getValues?infoToken=values:imgSize=,imgTypeDefault=true&cropped=false
Call<Images> getImageListWithSize(@Query("userID") String userID,
@Query("imgID") int imgID,
@Query(value = "imgSize", encoded = true) int size);
注意:由于我不确定如何将值传递给URI中的逗号分隔参数,因此我将infoToken=values:imgSize=
设置为显示不正确
我提交了请求:
Call<Images> call = apiEndpointI.getImageListWithSize(currUser.getUserID,
currUser.getImgID(), currUser.getImgSize());
以下是从日志触发的请求URI:
https://api.endpoint.net/v1/getValues?userID=XXX&imgID=37&infoToken=values:imgSize=,imgTypeDefault=true&cropped=false&imgSize=200
从上述请求中可以看出,当使用@Query
时,即使我设置&
,它也会以encoded = true
为前缀。相反,我希望为infoToken=values:imgSize=
分配值imgSize
我在请求中传递。
答案 0 :(得分:0)
解决了它。所以,现在我的GET
看起来像这样:
@GET("/v1/getValues?cropped=false
Call<Images> getImageListWithSize(@Query("userID") String userID,
@Query("imgID") int imgID,
@Query("infoToken") String infoToken);
我将infoToken声明为:
int size = getSize(); //200 for example
String infoToken = "values:imgSize=" + size + ",imgTypeDefault=true";
并且我提交了所有请求:
Call<Images> call = apiEndpointI.getImageListWithSize(currUser.getUserID,
currUser.getImgID(), infoToken);