【发布时间】:2016-09-08 07:06:08
【问题描述】:
我刚开始使用 Retrofit 和 RXJava。我有一个 api 调用,它上传一个文件并返回一个具有空正文和状态 200 的 http 响应(以防一切正常)。我将其翻译为改造:
@PUT("/in")
Observable<Void> uploadFile(@Body ResponseBody file);
但是当使用 mApi.uploadFile(f) 时,我得到一个异常:
Caused by: java.lang.IllegalArgumentException: Could not locate call
adapter for rx.Observable<java.lang.Void>. Tried:
* retrofit.ExecutorCallAdapterFactory
at retrofit.Retrofit.nextCallAdapter(Retrofit.java:207)
at retrofit.Retrofit.callAdapter(Retrofit.java:175)
at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:45)
我读到here,对于没有 RxJava 的空响应,最好的做法是使用 Void。这不适用于 RXJava?我必须实现适配器吗? .
编辑1:
如答案here 中所述,有必要添加一个CallAdapterFactory 来改造。我还必须转换 File 参数。尽管如此,错误仍然存在。
在我弄清楚如何将请求映射到改造后的第二步是链接多个文件上传。我该怎么做?
也欢迎提供有关使用 RXJava + Retrofit 的高级教程或示例的链接。
【问题讨论】: