我正在尝试做这样的事情:
@GET("values")
Call<List<Values>> getResult(@Query("ids") List<String> ids);
我想要的请求是这样的:
server.com/values?ids=abc%2Cdef%2Cghi%2Cjkl
实际要求如下:
server.com/values?ids=abc&ids=def&ids=ghi&ids=jkl
如何达到预期的要求?
答案 0 :(得分:0)
最后,想出了这个。这是我采取行动的方法:
首先,将ArrayList转换为编码字符串:
String uriString = null;
try {
uriString = URLEncoder.encode(TextUtils.join(",", ids), "utf-8");
} catch (UnsupportedEncodingException e) {
// Catch the exception
}
然后在进行改装调用时执行以下操作:
@GET("values")
Call<List<Values>> getResult(@Query(encode=true, value="ids") String ids);
设置encode = true非常重要,否则您的%将被进一步编码,您将永远无法进行所需的呼叫。