final PostMethod postMethod = new PostMethod(serverUri.toString());
postMethod.addRequestHeader(HttpHeaders.CONTENT_TYPE, "application/json");
postMethod.addRequestHeader(MchoiceUssdMessage.REQUEST_VERSION, version);
postMethod.addRequestHeader(MchoiceUssdMessage.ENCODING, characterEncoding);
postMethod.addRequestHeader(MchoiceUssdMessage.CONVERSATION, conversationId);
final UssdAoRequestMessage ussdAoRequestMessage = new UssdAoRequestMessage();
ussdAoRequestMessage.setMessage(message);
ussdAoRequestMessage.setAddress(address);
ussdAoRequestMessage.setSessionTermination(sessionTermination);
postMethod.setRequestBody(gson.toJson(ussdAoRequestMessage));
try {
httpClient.executeMethod(postMethod);
return gson.fromJson(postMethod.getResponseBodyAsString(), MchoiceUssdResponse.class);