public String callSynchronous(JsonArray params, OrangeContext orangeContext)
throws RpcCallException {
HttpClientWrapper clientWrapper = loadBalancer.getHttpClientWrapper();
HttpRequestWrapper balancedPost = clientWrapper.createHttpPost(this);
if (orangeContext != null) {
orangeContext.getProperties().forEach(balancedPost::setHeader);
}
balancedPost.setHeader("Content-type", TYPE_JSON);
balancedPost.setHeader("Connection", "close");
JsonRpcRequest jsonRequest = new JsonRpcRequest(null, methodName, params);
String json = jsonRequest.toString();
balancedPost.setContentProvider(new StringContentProvider(json));
logger.debug("Sending request of size {}", json.length());
ContentResponse rpcResponse = clientWrapper.execute(balancedPost,
new JsonRpcCallExceptionDecoder(), orangeContext);
String rawResponse = rpcResponse.getContentAsString();
logger.debug("Json response from the service: {}", rawResponse);
return JsonRpcResponse.fromString(rawResponse).getResult().getAsString();
}