【发布时间】:2013-07-08 22:32:04
【问题描述】:
我正在构建一个 Android 应用程序,并且正在使用 Square 的 Retrofit 库进行短期网络调用。我对 Java 和 Android 比较陌生。到目前为止,我已经构建了这样的请求:
@GET("/library.php")
void library(
@Query("one_thing") String oneThing,
@Query("another_thing") String anotherThing,
Callback<Map<String,Object>> callback
);
然后这样称呼他们:
service.library(oneThing, anotherThing, callback);
我需要实现一个接受可变数量参数的请求,不超过 10 个左右。必须单独定义它们并传递null 或对于给定请求不存在的那些是很麻烦的。有没有办法为请求定义一个接口,以便它接受变量编号或参数并为参数字典/映射中的每个元素自动构造@Querys?像这样的:
@GET("/library.php")
void library(
Map<String,Object> parameters,
Callback<Map<String,Object>> callback
);
service.library(parameters, callback);
提前感谢您的任何提示。
编辑:为与请求无关的参数传递 null 在这种情况下将不起作用。理想情况下,我可以根据参数字典设置/创建@Querys,这样如果键的值为空,则键不会变为@Query。
编辑:我正在专门寻找一种适用于 GET 请求的解决方案。
【问题讨论】:
标签: java android networking retrofit