diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/datainterface/impl/InterfaceServiceImpl.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/datainterface/impl/InterfaceServiceImpl.java index 84876ff..6dd0477 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/datainterface/impl/InterfaceServiceImpl.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/datainterface/impl/InterfaceServiceImpl.java @@ -32,6 +32,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.util.concurrent.ListenableFuture; import org.springframework.util.concurrent.ListenableFutureCallback; import org.springframework.web.client.AsyncRestTemplate; @@ -244,20 +246,49 @@ public class InterfaceServiceImpl extends ServiceImpl httpEntity = new HttpEntity(body, httpHeaders); - // 发送请求 - if(callType == 2){ - responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); - } else { - listenableFuture = asyncRestTemplate.postForEntity(url, httpEntity, String.class); + + final String requestHeaders = interfaceInfo.getRequestHeaders(); + + if(requestHeaders!=null && requestHeaders.contains(MediaType.APPLICATION_JSON_VALUE)) { + + HttpHeaders httpHeaders = new HttpHeaders(); + // 设置请求头 + httpHeaders.setAll(JSONObject.parseObject(requestHeaders, Map.class)); + // 封装请求体 + JSONObject body = JSONObject.parseObject(requestBody); + // 封装参数和头信息 + HttpEntity httpEntity = new HttpEntity(body, httpHeaders); + // 发送请求 + if (callType == 2) { + responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); + } else { + listenableFuture = asyncRestTemplate.postForEntity(url, httpEntity, String.class); + } + }else{ + + HttpHeaders httpHeaders = new HttpHeaders(); + // 设置请求头 + httpHeaders.setAll(JSONObject.parseObject(interfaceInfo.getRequestHeaders(), Map.class)); + // 封装请求体 + + JSONObject body = JSONObject.parseObject(requestBody); + MultiValueMap bodyMap = new LinkedMultiValueMap<>(); + bodyMap.setAll(body); + + // 封装参数和头信息 + HttpEntity> httpEntity = new HttpEntity(bodyMap, httpHeaders); + // 发送请求 + if (callType == 2) { + // 这里调用还是报错 ,已修复 + // post http://47.99.93.74:8090/mockapi/hello2?name={name} 会报错 + // java.lang.IllegalArgumentException: Not enough variable values available to expand 'name' + responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); + } else { + listenableFuture = asyncRestTemplate.postForEntity(url, httpEntity, String.class); + } } + } else if(HttpMethod.GET.name().equals(interfaceInfo.getMethod())){ // 封装uri地址路径变量 Map uriVariables = new HashMap<>(); diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/impl/CommonServiceImpl.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/impl/CommonServiceImpl.java index fb1ac6d..9531212 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/impl/CommonServiceImpl.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/datax/runner/impl/CommonServiceImpl.java @@ -182,6 +182,9 @@ public class CommonServiceImpl implements CommonService { map.put(key,value); } + + + // 决策选项 测试时 ,这个方法 没被调用 @Override public Map getFields(List fields, Map inputParam) { logger.info("start getEngineField, fields:{},inputParam:{}", JSONObject.toJSONString(fields), JSONObject.toJSONString(inputParam)); diff --git a/ddp/ddp-common/ddp-utils/src/main/java/com/fibo/ddp/common/utils/util/runner/JevalUtil.java b/ddp/ddp-common/ddp-utils/src/main/java/com/fibo/ddp/common/utils/util/runner/JevalUtil.java index 525548f..79457fa 100644 --- a/ddp/ddp-common/ddp-utils/src/main/java/com/fibo/ddp/common/utils/util/runner/JevalUtil.java +++ b/ddp/ddp-common/ddp-utils/src/main/java/com/fibo/ddp/common/utils/util/runner/JevalUtil.java @@ -162,6 +162,10 @@ public class JevalUtil { Object v = variablesMap.get(key); if(v!=null) { String variableValue = CommonConst.SYMBOL_SINGLE_QUOTA+v.toString()+CommonConst.SYMBOL_SINGLE_QUOTA; + variablesMap.put(key, variableValue); + }else{ + String variableValue = CommonConst.SYMBOL_SINGLE_QUOTA+CommonConst.SYMBOL_SINGLE_QUOTA; + variablesMap.put(key, variableValue); } }