Ras*_*iri 3 java android retrofit2
我有改造接口
interface ApiInterface {
@GET
Observable<okhttp3.ResponseBody> get(@Url String url,
@HeaderMap Map<String, Object> headerMap,
@QueryMap HashMap<String, String> queryMap );
}
Run Code Online (Sandbox Code Playgroud)
我这样调用,它完美地工作
HashMap<String, String> map = new HashMap<String, String>();
map.put("id","xyz");
apiInterface.get(url, getHeader(),map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
Run Code Online (Sandbox Code Playgroud)
但是当我通过时null,它不起作用
return apiInterface.get(url, getHeader(),null)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
Run Code Online (Sandbox Code Playgroud)
如何通过 null 来改造接口?
你基本上不能通过 null 。两种可能的解决方案。
要么使用空的 HashMap<>
new HashMap<>()
Run Code Online (Sandbox Code Playgroud)编写另一个没有该字段的 api 调用,如下所示。
接口 ApiInterface {
@GET
Observable<okhttp3.ResponseBody> get(@Url String url,
@HeaderMap Map<String, Object> headerMap,
@QueryMap HashMap<String, String> queryMap );
Run Code Online (Sandbox Code Playgroud)
}
接口 ApiInterface {
@GET
Observable<okhttp3.ResponseBody> get(@Url String url,
@QueryMap HashMap<String, String> queryMap );
Run Code Online (Sandbox Code Playgroud)
}
您可以在此处找到更多详细信息:https : //github.com/square/retrofit/issues/1488 (顺便说一下,这不是我的帖子)
| 归档时间: |
|
| 查看次数: |
769 次 |
| 最近记录: |