From 0188dee359636723190f0f67a6b674b7b08f7bef Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期一, 21 三月 2022 09:55:01 +0800 Subject: [PATCH] 增加判断json数据格式 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java index 0d20188..edb326e 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java @@ -1,6 +1,7 @@ package com.hdl.sdk.connect.protocol; +import android.annotation.TargetApi; import android.os.Build; import android.util.Log; @@ -116,9 +117,9 @@ } } - @RequiresApi(api = Build.VERSION_CODES.O) + @Override - protected synchronized LinkResponse decoder(Object msg) throws Exception { + protected synchronized LinkResponse decoder(Object msg,String ipaddress) throws Exception { if (msg instanceof byte[]) { bytes.addAll(ByteUtils.toByteList((byte[]) msg)); //濡傛灉澶氭潯鍛戒护鎵撳寘鍦ㄤ竴鏉℃暟鎹腑锛岄兘闇�瑕佸鐞嗗畬 @@ -156,6 +157,7 @@ bytes.add(recevieBytes[i]); } LinkResponse response = new LinkResponse(); + response.setSource_ipAddress(ipaddress); response.setTopic(topic); if (HDLLinkConfig.getInstance().ifNeedEncrypt(response.getTopic())) { //闇�瑕佽В瀵� @@ -164,19 +166,27 @@ body = bodyBytes; } else { try { - LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.getEncoder().encodeToString(body)); + //涔嬪墠鐨勭増鏈繖鍧楁槸鏄庢枃鐨� + if (!topic.contains("heartbeat_reply")) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.getEncoder().encodeToString(body)); + else { + LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + new String(body, "utf-8")); + } + } } catch (Exception e) { } } } String bodyString = new String(body, "utf-8"); + response.setData(bodyString); + LogUtils.i( "鎺ユ敹鍒版暟鎹�:" + response.getTopic() + "\r\n" + response.getData()); //闈炴甯告暟鎹紝杩斿洖 - if (!(bodyString.startsWith("{") || bodyString.startsWith("["))) { + if (!((bodyString.startsWith("{") &&bodyString.endsWith("}")) + || (bodyString.startsWith("[")&&bodyString.endsWith("]")))) { continue; } - response.setData(bodyString); - LogUtils.i( "LinkMessageDecoder->decoder:" + response.getTopic() + "\r\n" + response.getData()); //瑙f瀽瀹屾垚,topic鍙戦�佷竴娆� EventDispatcher.getInstance().post(response.getTopic(), response); } -- Gitblit v1.8.0