2015-12-16 2 views
1

Я использую модификацию в android и GsonConverterFactory - это конвертер.Модифицировать создание пустого тела на Android

Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("http://xxxxxxx.com") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

Я хочу отправить запрос POST с телом.

public class MasterRequest 
{ 
} 


public class User extends MasterRequest 
{ 
@SerializedName("email") 
public String email = null; 
} 

@POST("{path}") 
Call<MasterResponse> registerUser(@Path("path") String path, @Body MasterRequest masterRequest); 

путь - это URL-адрес, который добавляется с базовым URL-адресом.

Когда когда-либо я отправляю объект класса child («Пользователь») в ссылку родительского класса (MasterRequest), тогда конвертор показывает пустой json; "{}".

Но когда я отправляю объект класса пользователя ниже метода registerUser, он работает нормально.

@POST("{path}") 
Call<MasterResponse> registerUser(@Path("path") String path, @Body User user); 

Как я могу отправить дочерний объект класса в экземпляр родительского класса, чтобы сделать тело запроса?

ответ

2

Вот как работает Gson. Самый простой способ сериализации полиморфных объектов - использовать RuntimeTypeAdapterFactory. Вы можете найти подробный учебник here. Отлично работает с Retrofit!

Смежные вопросы