From 2d4ddc28572238ad81e0dfcf8bd3dc3edddde8d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=88=9A?= <53732908@qq.com> Date: Thu, 13 Feb 2025 22:47:20 +0800 Subject: [PATCH] =?UTF-8?q?http=20=E6=8E=A5=E5=8F=A3=20=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=20=EF=BC=8Cpost=20application/x-www-form-?= =?UTF-8?q?urlencoded=20=20=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/InterfaceServiceImpl.java | 55 +++++++++++++++---- .../datax/runner/impl/CommonServiceImpl.java | 3 + .../common/utils/util/runner/JevalUtil.java | 4 ++ 3 files changed, 50 insertions(+), 12 deletions(-) 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); } }