我正在构建一个 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
为给定请求不存在的那些传递或传递一些东西是很麻烦的。有没有办法为请求定义一个接口,以便它接受变量编号或参数,并@Query
为参数字典/映射中的每个元素自动构造 s?像这样的东西:
@GET("/library.php")
void library(
Map<String,Object> parameters,
Callback<Map<String,Object>> callback
);
service.library(parameters, callback);
提前感谢您的任何提示。
编辑:在这种情况下,为与请求无关的参数传递 null 将不起作用。理想情况下,我可以@Query
根据参数字典设置/创建 s,这样@Query
如果它们的值为空,键就不会变为 a。
编辑:我正在专门寻找一种适用于 GET 请求的解决方案。