Fra*_*and 12 android retrofit retrofit2
我正在寻找方法在改装2 的GET请求中添加一个int数组(例如[0,1,3,5])作为参数.然后,生成的url应该是这样的:http:// server/service ?阵列= [0,1,3,5]
这该怎么做 ?
mrs*_*tif 13
您需要使用数组语法命名您的查询参数,如下所示:
@GET("http://server/service")
Observable<Void> getSomething(@Query("array[]") List<Integer> array);
Run Code Online (Sandbox Code Playgroud)
语法本身会因所使用的后端技术而异,但不包括括号“[]”通常会被解释为单个值。
例如, usingarray=1&array=2通常会被后端解释为 onlyarray=1或array=2代替array=[1,2]。
And*_*kin 12
只需将其添加为查询参数即可
@GET("http://server/service")
Observable<Void> getSomething(@Query("array") List<Integer> array);
Run Code Online (Sandbox Code Playgroud)
你也可以使用int []或Integer ...作为最后一个参数;
我终于通过使用 Arrays.toString(int []) 方法并通过删除此结果中的空格来建立解决方案,因为 Arrays.toString 返回“[0, 1, 3, 5]”。我的请求方法看起来像这样
@GET("http://server/service")
Observable<Void> getSomething(@Query("array") String array);
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,必须做一些事情才能达到可接受的形式(如问题中所要求的)。
将 ArrayList 转换为字符串
arrayList.toString().replace(" ", "")
Run Code Online (Sandbox Code Playgroud)在 RetroFit 方法中,我将接受上面的 ArrayList 的 Query 参数更改为如下:
@Query(value = "cities", encoded = true)
Run Code Online (Sandbox Code Playgroud)这可确保括号和逗号不经过 URL 编码。
| 归档时间: |
|
| 查看次数: |
10505 次 |
| 最近记录: |