protected UUID postCommand(String command, int version, Object payload) throws IOException { CommandObject cmdObj = new CommandObject(); cmdObj.setCommand(command); cmdObj.setVersion(version); cmdObj.setPayload(payload); String json = connector.toJSON(cmdObj); Map<String, String> params = new HashMap<String, String>(); params.put("payload", json); try { MessageDigest md = MessageDigest.getInstance("SHA-1"); params.put("checksum", Hex.encodeHexString(md.digest(json.getBytes(HttpConnector.UTF_8)))); } catch (NoSuchAlgorithmException e) { throw new IllegalArgumentException(e); } CommandResponse response = connector.post("/commands/", params, CommandResponse.class); return response == null ? null : UUID.fromString(response.getUuid()); }