private IRequest buildRequest(Request requestConfig, Map<String, Object> templateDataObjects) throws ITemplatingEngine.TemplateEngineException { String path = requestConfig.getPath().trim(); if (!path.startsWith(SLASH_CHAR) && !path.isEmpty()) { path = SLASH_CHAR + path; } URI targetUri = URI.create(targetServerUri + templateValues(path, templateDataObjects)); String requestBody = templateValues(requestConfig.getBody(), templateDataObjects); var method = Method.valueOf(requestConfig.getMethod().toUpperCase()); log.info("targetUri: {}", targetUri); log.info("method: {}", method); log.info("body: {}", requestBody); IRequest request = httpClient.newRequest(targetUri, method). setBodyEntity(requestBody, UTF_8, requestConfig.getContentType()); Map<String, String> headers = requestConfig.getHeaders(); for (String headerName : headers.keySet()) { request.setHttpHeader(headerName, templateValues(headers.get(headerName), templateDataObjects)); } Map<String, String> queryParams = requestConfig.getQueryParams(); for (String queryParam : queryParams.keySet()) { request.setQueryParam(queryParam, templateValues(queryParams.get(queryParam), templateDataObjects)); } return request; }