Ich fange gerade mit Retrofit und RXJava an. Ich habe einen API-Aufruf, der eine Datei hochlädt und eine http-Antwort zurückgibt, die einen leeren Körper und Status 200 hat (falls alles gut funktioniert). Ich übersetzte das nachzurüsten als:Retrofit mit RXJava/RxAndroid: Wie funktioniert das Observable?
@PUT("/in")
Observable<Void> uploadFile(@Body ResponseBody file);
Aber wenn WHE verwenden mApi.uploadFile (f), erhalte ich eine Ausnahme:
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)
ich here, dass für eine leere Antwort ohne RxJava lesen, die beste Praktisch ist die Verwendung von Leere. Das geht nicht mit RXJava? Muss ich einen Adapter implementieren? .
Edit 1:
Es ist notwendig, eine CallAdapterFactory hinzugefügt zu haben, wie in der Antwort here angegeben nachzurüsten. Ich musste auch den File-Parameter konvertieren. Trotzdem bleibt der Fehler bestehen.
Zweiter Schritt, nachdem ich herausfinden, wie man die Anforderung zur Nachrüstung abbilden soll, ist es, Filialupdates zu ketten. Wie mache ich das?
Links zu fortgeschrittenen Anleitungen zur Verwendung von RXJava + Retrofit oder Samples sind ebenfalls willkommen.
Ja ... Ich habe das herausgefunden. Dennoch scheint mein Problem durch den Typ Void verursacht zu sein, der in "Observable" verwendet wurde. –