Retrofit передает объект с null полями в POST запросе

174
18 марта 2018, 20:44

Хочу передать Мessage на сервер, моя аппа передает с пустыми полями Message{id=0, messageType='null', author='null', receiver='null', messageText='null', timestamp=0, isMessageRead=false}. На сервере класс Мессадж точно такой же, пробовал через curl делать запрос на сервер-там все нормально выводит. Что я делаю не так?

@Entity 
public class Message implements Serializable { 
 
    @Ignore 
    private static final long serialVersionUID = 123123L; 
 
    @PrimaryKey 
    private int mId; 
    //Type of incoming_message, can be text, image/png, image/jpg, video 
    private String mMessageType; 
    private String mAuthor; 
    private String mReceiver; 
    private String mMessageText; 
    private long mTimestamp; 
    private boolean isMessageRead; 
 
    //default constructor for room 
    public Message() {} 
 
    public Message(String author, String receiver, String messageText) { 
        mId = new Random().nextInt(); 
        mAuthor = author; 
        mReceiver = receiver; 
        mMessageText = messageText; 
        mTimestamp = new Date().getTime(); 
    } 
 
    @SerializedName("id") 
    public int getId() { 
        return mId; 
    } 
 
    public void setId(int id) { 
        mId = id; 
    } 
    //геттеры и сеттеры

public interface MessageGateway { 
 
    @Headers("Content-type: application/json") 
    @POST("message/send/id={messageid}") 
    Completable sendMessage(@Path("messageid") String messageid, @Body Message msg); 
}

public class RetrofitInitializer { 
 
    private static final String DEFAULT_CONTACT_SERVICE_BASE_URL = "http://10.0.2.2:8080/"; 
 
    private String mContactServiceBaseUrl = DEFAULT_CONTACT_SERVICE_BASE_URL; 
 
    private ContactGateway mService; 
    private MessageGateway mMessageGateway; 
 
    public RetrofitInitializer() { 
        //We need this to avoid malformed exception while work with token responce from server 
        Gson gson = new GsonBuilder() 
                .setLenient() 
                .create(); 
        Retrofit retrofit = new Retrofit.Builder() 
                .baseUrl(mContactServiceBaseUrl) 
                .addConverterFactory(GsonConverterFactory.create(gson)) 
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) 
                .build(); 
        mService = retrofit.create(ContactGateway.class); 
        mMessageGateway = retrofit.create(MessageGateway.class); 
    }

public class MessageSenderService extends Service { 
 
    /////////// 
 
    public void sendMessage(Message msg) { 
        Log.i(TAG, "start sending message" + msg.toString()); 
        mMessageGateway.sendMessage(String.valueOf(msg.getId()), msg) 
                .subscribeOn(Schedulers.io()) 
                .subscribe(() -> mMessageDao.saveMessage(msg)); 
    } 
}

READ ALSO
Не работает сортировка данных в firebase

Не работает сортировка данных в firebase

Из Firebase мне нужно получить все элементы с categoryName = "Внешность" и добавить их в ArrayListПытаюсь сделать это так:

158
UploadiFive Как определить id

UploadiFive Как определить id

Работаю с плагином UploadiFive Кто нить знает как получить id загружаемого файла в функциях - 'onAddQueueItem' : function() {тут!} и соответственно 'onUploadComplete' : function()...

203
css. rotate3d. вращение элемента

css. rotate3d. вращение элемента

В 3D редакторах используют систему координат:

259