我有改造的接口(interface)
interface ApiInterface {
@GET
Observable<okhttp3.ResponseBody> get(@Url String url,
@HeaderMap Map<String, Object> headerMap,
@QueryMap HashMap<String, String> queryMap );
}
我这样调用,效果很好
HashMap<String, String> map = new HashMap<String, String>();
map.put("id","xyz");
apiInterface.get(url, getHeader(),map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
但是当我传递null
时,它不起作用
return apiInterface.get(url, getHeader(),null)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
如何通过 null 来改造接口(interface)?
最佳答案
你基本上不能传递 null 。两种可能的解决方案。
要么使用一个空的 HashMap<>
new HashMap<>()
编写另一个没有该字段的 api 调用,如下所示。
接口(interface) ApiInterface {
@GET
Observable<okhttp3.ResponseBody> get(@Url String url,
@HeaderMap Map<String, Object> headerMap,
@QueryMap HashMap<String, String> queryMap );
接口(interface) ApiInterface {
@GET
Observable<okhttp3.ResponseBody> get(@Url String url,
@QueryMap HashMap<String, String> queryMap );
您可以在此处找到更多详细信息: https://github.com/square/retrofit/issues/1488 (顺便说一句,这不是我的帖子)
关于java - 改造可空参数映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52966755/