From 793637536cb1eb56570c24ad29fc9f8425a52575 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Mon, 27 May 2024 13:56:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmock=E8=AF=B7=E6=B1=82=E4=B8=AD=E5=B8=A6?= =?UTF-8?q?=E4=B8=AD=E6=96=87=E6=97=B6=EF=BC=8C=E5=8C=B9=E9=85=8D=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1041236 --user=王孝刚 【接口测试】Mock-Mock规则设置为Query参数值长度等于5,请求Mock地址时,Query参数传入长度等于5的中文字符串,Mock匹配失败 https://www.tapd.cn/55049933/s/1521289 --- .../api/utils/MockServerUtils.java | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/utils/MockServerUtils.java b/backend/services/api-test/src/main/java/io/metersphere/api/utils/MockServerUtils.java index b2de0ab485..db3d6e76ae 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/utils/MockServerUtils.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/utils/MockServerUtils.java @@ -13,9 +13,9 @@ import org.springframework.http.MediaType; import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.util.*; @@ -80,12 +80,13 @@ public class MockServerUtils { } } String queryString = request.getQueryString(); + if (StringUtils.isNotEmpty(queryString)) { String[] queryParamArr = queryString.split("&"); for (String queryParam : queryParamArr) { String[] queryParamKV = queryParam.split("="); if (queryParamKV.length == 2) { - queryParamsMap.put(queryParamKV[0], queryParamKV[1]); + queryParamsMap.put(queryParamKV[0], URLDecoder.decode(queryParamKV[1], StandardCharsets.UTF_8)); } } } @@ -159,28 +160,13 @@ public class MockServerUtils { if (sendParamArr.length > i) { value = sendParamArr[i]; } - restParams.put(param, value); + restParams.put(param, URLDecoder.decode(value, StandardCharsets.UTF_8)); } } } return restParams; } - private static String getRequestStr(HttpServletRequest request) { - String inputLine; - // 接收到的数据 - StringBuilder receiveData = new StringBuilder(); - try (BufferedReader in = new BufferedReader(new InputStreamReader( - request.getInputStream(), StandardCharsets.UTF_8))) { - while ((inputLine = in.readLine()) != null) { - receiveData.append(inputLine); - } - } catch (IOException ignored) { - } - - return receiveData.toString(); - } - public static String getUrlSuffix(String mockUrlInfo, HttpServletRequest request) { String requestUri = request.getRequestURI(); String[] urlParamArr = requestUri.split(mockUrlInfo);