From 773b9953ad645b39a9efa8ab6d71dfc9d9e4e22e Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 24 十月 2024 11:51:57 +0800 Subject: [PATCH] 补全了所有日志 --- HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java | 127 +++++++++++++++++++++++++---------------- 1 files changed, 77 insertions(+), 50 deletions(-) diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java index df494e1..50f0dad 100644 --- a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java +++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/core/interceptor/HDLEncryptInterceptor.java @@ -5,6 +5,8 @@ import androidx.annotation.NonNull; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -12,6 +14,7 @@ import com.hdl.hdlhttp.utils.GsonConvert; import com.hdl.linkpm.sdk.HDLLinkPMSdk; import com.hdl.linkpm.sdk.core.interceptor.HDLSmartHeader; +import com.hdl.linkpm.sdk.template.GsonUtils; import com.hdl.linkpm.sdk.utils.HDLMD5Utils; import com.hdl.linkpm.sdk.utils.HDLSDKLog; @@ -141,68 +144,92 @@ private String jsonToUrlParameter(JsonObject object) { - final Map<String, String> map = GsonConvert.getGson().fromJson(object, new TypeToken<Map<String, String>>() { - }.getType()); +// final Map<String, String> map = GsonUtils.getGson().fromJson(object, new TypeToken<Map<String, String>>() { +// }.getType()); +// final Uri.Builder builder = new Uri.Builder(); +// List<String> list = new ArrayList<>(map.keySet()); +// Collections.sort(list); +// for (String key : list) { +// String value = map.get(key); +// if (valueNeedSign(value)) { +// builder.appendQueryParameter(key, value); +// } +// } +// return builder.build().getQuery(); final Uri.Builder builder = new Uri.Builder(); - List<String> list = new ArrayList<>(map.keySet()); - Collections.sort(list); - for (String key : list) { - //鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷� - if (IfValueNeedSign(map.get(key))) { - builder.appendQueryParameter(key, map.get(key)); -// HDLSDKLog.e("瑕佺鍚嶏細" + key + " 锛�" + map.get(key)); - } else { -// HDLSDKLog.e("涓嶉渶瑕佺鍚嶏細" + key + " 锛�" + map.get(key)); + try { + JSONObject jsonobject = JSON.parseObject(object.toString()); + List<String> list = new ArrayList<>(jsonobject.keySet()); + Collections.sort(list); + for (String key : list) { + Object obj = jsonobject.get(key); + if (isSignValue(obj)) + builder.appendQueryParameter(key, obj.toString()); + } + } catch (Exception e) { + e.printStackTrace(); } return builder.build().getQuery(); } + private static boolean isSignValue(Object value) { + if (value == null) return false; + if (value instanceof Number) return true; + String className = value.getClass().getSimpleName(); + switch (className) { + case "String": + case "Integer": + case "Boolean": + case "Long": + case "Short": + case "Float": + case "Double": + case "Character": + case "Byte": + if (TextUtils.isEmpty(value.toString())) return false; + return true; + default: + return false; + + } + + } + + /** + * 鍩烘湰绫诲瀷鍔犲瘑 + * <p> * 鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷� * 绌哄瓧绗︿覆涓嶅弬涓� - * 鏁扮粍,闆嗗悎,瀵硅薄涓嶅弬涓� + * 鏁扮粍,闆嗗悎涓嶅弬涓� * - * @param valueStr - * @return + * @return ture 闇�瑕佸姞瀵� */ - private static boolean IfValueNeedSign(String valueStr) { - if (TextUtils.isEmpty(valueStr)) - return false; - final char[] strChar = valueStr.substring(0, 1).toCharArray(); - final char firstChar = strChar[0]; - //System.out.println("getJSONType firstChar = "+firstChar); - if (firstChar != '{' && firstChar != '[') - return true; - + private static boolean valueNeedSign(String valueStr) { + try { + if (!TextUtils.isEmpty(valueStr)) { + JsonElement json = JsonParser.parseString(valueStr); + if (json != null && (json.isJsonPrimitive() || json.getAsJsonPrimitive().isString())) { + return true; + } + } + } catch (Exception e) { + e.printStackTrace(); + } return false; } -// /** -// * 鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷� -// * 绌哄瓧绗︿覆涓嶅弬涓� -// * 鏁扮粍,闆嗗悎,瀵硅薄涓嶅弬涓� -// * -// * @param inputValueStr -// * @return -// */ -// private static boolean IfValueNeedSign(String inputValueStr) { -// if (TextUtils.isEmpty(inputValueStr)) -// return false; -// try { -// //鍏堣В鐮� -// String valueStr = URLDecoder.decode(inputValueStr, "utf-8"); -// final char[] strChar = valueStr.substring(0, 1).toCharArray(); -// final char firstChar = strChar[0]; -// //System.out.println("getJSONType firstChar = "+firstChar); -// if (firstChar != '{' && firstChar != '[') { -// return true; -// } -// return false; -// } catch (UnsupportedEncodingException e) { -// e.printStackTrace(); -// return false; -// } -// -// } + + public static boolean isPrimitive(String type) { + return (type.equals("char") + || type.equals("double") || type.equals("float") + || type.equals("integer") || type.equals("string") + || type.equals("boolean")) || (type.equals("Char") + || type.equals("Double") || type.equals("Float") + || type.equals("Integer") || type.equals("String") + || type.equals("Boolean") || type.equals("int") + || type.equals("long") || type.equals("Int") || type + .equals("Long")); + } } -- Gitblit v1.8.0