@Override public ChatMessage sendMessage(Message message) throws ConnectionException { checkLoaded(); try { long ms = System.currentTimeMillis(); JsonObject obj = new JsonObject(); obj.add("content", message.write()); obj.add("messagetype", "RichText"); obj.add("contenttype", "text"); obj.add("clientmessageid", String.valueOf(ms)); ConnectionBuilder builder = new ConnectionBuilder(); builder.setUrl(getClient().withCloud(SEND_MESSAGE_URL, getIdentity())); builder.setMethod("POST", true); builder.addHeader("RegistrationToken", getClient().getRegistrationToken()); builder.addHeader("Content-Type", "application/json"); builder.setData(obj.toString()); HttpURLConnection con = builder.build(); if (con.getResponseCode() == 201) { return ChatMessageImpl.createMessage( this, getUser(getClient().getUsername()), null, String.valueOf(ms), ms, message); } else { throw getClient().generateException(con); } } catch (IOException e) { throw new ConnectionException("While sending a message", e); } }