w moim przypadku, kiedy kładę sub klasy obiektów w żądaniu modernizacji to gaśnie na żądanie ciałaNie można przekonwertować podklasa obiektu żądania json ciała w Retrofit 2.0 z GsonConverterFactory
interface User{ // my super interface
}
class FbUser implements User{ // my sub class
public String name;
public String email;
}
interface APIInterface{
@POST(APIConstants.LOGIN_URL)
Observable<LoginAPIResponse> createUserNew(@Body User user);
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create())
.client(okHttpClient)
.build();
APIInterface networkAPI = retrofit.create(APIInterface.class);
teraz jestem przechodzącej FbUserObject
networkAPI.createUserNew(fbUserObject).subscribe();
następnie obiekt jest pusty w treści. zobaczyć mój dziennik
D/OkHttp: Content-Type: application/json; charset=UTF-8
D/OkHttp: Content-Length: 2
D/OkHttp: Accept: application/json
D/OkHttp: TT-Mobile-Post: post
D/OkHttp: {}
D/OkHttp: --> END POST (2-byte body)
ja też przejść przez ten stackover linku przepływu Polymorphism with gson
Powinienem napisać własny Gson Converter?
Wygląda jak rozwiązanie. Teraz jednak jestem smutną pandą :(Szukam sposobu na zautomatyzowanie procesu. Prawdopodobnie refleksja jest moim wyborem –