From 72fdc38b7a2daf2c1914608200e9d17413234a64 Mon Sep 17 00:00:00 2001 From: yuye <631941527@qq.com> Date: Sun, 5 Jul 2020 11:20:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96json=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mars-common/pom.xml | 2 +- mars-core/pom.xml | 2 +- mars-jdbc/pom.xml | 2 +- mars-mvc/pom.xml | 2 +- .../java/com/mars/mvc/util/BuildParams.java | 4 +-- mars-server/pom.xml | 2 +- .../iserver/constant/ParamTypeConstant.java | 27 ++++++++++++++++++ .../iserver/par/HttpMarsRequestFactory.java | 8 +++--- .../server/request/HttpMarsRequest.java | 28 +++++++++++-------- mars-starter/pom.xml | 2 +- pom.xml | 2 +- 11 files changed, 56 insertions(+), 25 deletions(-) diff --git a/mars-common/pom.xml b/mars-common/pom.xml index 9052f15..b2a53f4 100644 --- a/mars-common/pom.xml +++ b/mars-common/pom.xml @@ -6,7 +6,7 @@ Mars-Java com.github.yuyenews - 3.0.23 + 3.0.25 mars-common diff --git a/mars-core/pom.xml b/mars-core/pom.xml index bf847df..7aba7fe 100644 --- a/mars-core/pom.xml +++ b/mars-core/pom.xml @@ -6,7 +6,7 @@ com.github.yuyenews Mars-Java - 3.0.23 + 3.0.25 mars-core diff --git a/mars-jdbc/pom.xml b/mars-jdbc/pom.xml index 388ab88..c815018 100644 --- a/mars-jdbc/pom.xml +++ b/mars-jdbc/pom.xml @@ -6,7 +6,7 @@ Mars-Java com.github.yuyenews - 3.0.23 + 3.0.25 mars-jdbc diff --git a/mars-mvc/pom.xml b/mars-mvc/pom.xml index 4627a22..a33c540 100644 --- a/mars-mvc/pom.xml +++ b/mars-mvc/pom.xml @@ -6,7 +6,7 @@ com.github.yuyenews Mars-Java - 3.0.23 + 3.0.25 mars-mvc diff --git a/mars-mvc/src/main/java/com/mars/mvc/util/BuildParams.java b/mars-mvc/src/main/java/com/mars/mvc/util/BuildParams.java index 31940fe..d0347bf 100644 --- a/mars-mvc/src/main/java/com/mars/mvc/util/BuildParams.java +++ b/mars-mvc/src/main/java/com/mars/mvc/util/BuildParams.java @@ -69,8 +69,8 @@ public class BuildParams { */ private static Object getObject(Class cls, HttpMarsRequest request) throws Exception { /* 如果是Json传参,那就直接转成Java对象返回 */ - if(request.getContentType().startsWith(ParamTypeConstant.JSON)){ - JSONObject paramJson = request.getJsonObject(); + if(ParamTypeConstant.isJSON(request.getContentType())){ + JSONObject paramJson = request.getJsonParam(); if(paramJson == null){ return null; } diff --git a/mars-server/pom.xml b/mars-server/pom.xml index 35d4a7a..191e114 100644 --- a/mars-server/pom.xml +++ b/mars-server/pom.xml @@ -6,7 +6,7 @@ com.github.yuyenews Mars-Java - 3.0.23 + 3.0.25 mars-server diff --git a/mars-server/src/main/java/com/mars/iserver/constant/ParamTypeConstant.java b/mars-server/src/main/java/com/mars/iserver/constant/ParamTypeConstant.java index d703197..1b580bb 100644 --- a/mars-server/src/main/java/com/mars/iserver/constant/ParamTypeConstant.java +++ b/mars-server/src/main/java/com/mars/iserver/constant/ParamTypeConstant.java @@ -19,4 +19,31 @@ public class ParamTypeConstant { * formData提交 */ public static final String FORM_DATA = "multipart/form-data"; + + /** + * 是否是json格式 + * @param contentType 内容类型 + * @return + */ + public static boolean isJSON(String contentType){ + return contentType.startsWith(JSON) || contentType.equals(JSON); + } + + /** + * 是否是formData格式 + * @param contentType 内容类型 + * @return + */ + public static boolean isFormData(String contentType){ + return contentType.startsWith(FORM_DATA) || contentType.equals(FORM_DATA); + } + + /** + * 是否是表单格式 + * @param contentType 内容类型 + * @return + */ + public static boolean isUrlEncoded(String contentType){ + return contentType.startsWith(URL_ENCODED) || contentType.equals(URL_ENCODED); + } } diff --git a/mars-server/src/main/java/com/mars/iserver/par/HttpMarsRequestFactory.java b/mars-server/src/main/java/com/mars/iserver/par/HttpMarsRequestFactory.java index ee4ef8c..eda1268 100644 --- a/mars-server/src/main/java/com/mars/iserver/par/HttpMarsRequestFactory.java +++ b/mars-server/src/main/java/com/mars/iserver/par/HttpMarsRequestFactory.java @@ -50,19 +50,19 @@ public class HttpMarsRequestFactory { /* 根据提交方式,分别处理参数 */ String contentType = marsRequest.getContentType(); - if (contentType.startsWith(ParamTypeConstant.URL_ENCODED)) { + if (ParamTypeConstant.isUrlEncoded(contentType)) { /* 正常的表单提交 */ String paramStr = getParamStr(inputStream); marsParams = urlencoded(paramStr, marsParams, true); - } else if (contentType.startsWith(ParamTypeConstant.FORM_DATA)) { + } else if (ParamTypeConstant.isFormData(contentType)) { /* formData提交,可以用于文件上传 */ Map result = formData(httpExchange, marsParams, files, contentType); files = (Map) result.get(ParsingFormData.FILES_KEY); marsParams = (Map>) result.get(ParsingFormData.PARAMS_KEY); - } else if (contentType.startsWith(ParamTypeConstant.JSON)) { + } else if (ParamTypeConstant.isJSON(contentType)) { /* RAW提交(json) */ JSONObject jsonParams = raw(inputStream); - marsRequest.setJsonObject(jsonParams); + marsRequest.setJsonParam(jsonParams); } } /* 将提取出来的参数,放置到HttpMarsRequest中 */ diff --git a/mars-server/src/main/java/com/mars/server/server/request/HttpMarsRequest.java b/mars-server/src/main/java/com/mars/server/server/request/HttpMarsRequest.java index 942ce09..a5f52cc 100644 --- a/mars-server/src/main/java/com/mars/server/server/request/HttpMarsRequest.java +++ b/mars-server/src/main/java/com/mars/server/server/request/HttpMarsRequest.java @@ -27,7 +27,7 @@ public class HttpMarsRequest { /** * json参数 */ - private JSONObject jsonObject; + private JSONObject jsonParam; /** * 上传的文件 @@ -54,16 +54,16 @@ public class HttpMarsRequest { * 获取json传参 * @return json参数 */ - public JSONObject getJsonObject() { - return jsonObject; + public JSONObject getJsonParam() { + return jsonParam; } /** * 设置json传参 - * @param jsonObject + * @param jsonParam */ - public void setJsonObject(JSONObject jsonObject) { - this.jsonObject = jsonObject; + public void setJsonParam(JSONObject jsonParam) { + this.jsonParam = jsonParam; } /** @@ -71,14 +71,18 @@ public class HttpMarsRequest { * @return 参数类型 */ public String getContentType(){ - if(getMethod().toUpperCase().equals("GET")){ + try { + if(getMethod().toUpperCase().equals("GET")){ + return "N"; + } + List ctList = httpExchange.getRequestHeaders().get("Content-type"); + if(ctList == null || ctList.size() < 1){ + return "N"; + } + return ctList.get(0).trim().toLowerCase(); + } catch (Exception e){ return "N"; } - List ctList = httpExchange.getRequestHeaders().get("Content-type"); - if(ctList == null || ctList.size() < 1){ - return "N"; - } - return ctList.get(0).trim().toLowerCase(); } /** diff --git a/mars-starter/pom.xml b/mars-starter/pom.xml index 9f97c9b..9a729f9 100644 --- a/mars-starter/pom.xml +++ b/mars-starter/pom.xml @@ -6,7 +6,7 @@ Mars-Java com.github.yuyenews - 3.0.23 + 3.0.25 mars-starter diff --git a/pom.xml b/pom.xml index 8ce3cd4..87db397 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.github.yuyenews Mars-Java - 3.0.23 + 3.0.25 pom mars-core