Nel mio caso, quando ho messo oggetto classe sub a richiesta retrofit va vuoto nel corpo della richiestaImpossibile convertire oggetto sottoclasse di richiesta JSON corpo in retrofit 2.0 con 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);
ora sto passando FbUserObject
networkAPI.createUserNew(fbUserObject).subscribe();
quindi l'oggetto diventa vuoto nel corpo. vedere il mio registro
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)
Ho anche passare attraverso questo collegamento stackover flusso Polymorphism with gson
avrei dovuto scrivere il mio GSON Converter?
Sembra una soluzione. Ora sono un panda triste :(Sto cercando un modo per automatizzare il processo, probabilmente la riflessione è la mia scelta –