From af2cbc2a24b3724e7fc3e6b42e134b21a3144c75 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 17 二月 2022 15:33:19 +0800
Subject: [PATCH] 过滤掉非json数据不传给三方使用

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
index 3634ce4..9a9b5ae 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
@@ -4,12 +4,18 @@
 
 import androidx.annotation.NonNull;
 
+import com.hdl.sdk.common.utils.LogUtils;
+import com.hdl.sdk.connect.config.HDLLinkConfig;
+import com.hdl.sdk.common.utils.ByteUtils;
+import com.hdl.sdk.connect.utils.AesUtil;
+
 /**
  * Created by Tong on 2021/9/29.
  */
 public class LinkRequest {
     private String topic;
     private String data;
+
     private int length;
 
     public LinkRequest() {
@@ -35,7 +41,7 @@
     public void setData(String data) {
         this.data = data;
         if (!TextUtils.isEmpty(data)) {
-            setLength(data.length());
+            setLength(getBytesLength(data));
         } else {
             setLength(0);
         }
@@ -61,4 +67,38 @@
                 "\r\n\r\n" +
                 getData();
     }
+
+
+    private int getBytesLength(String str) {
+        return ByteUtils.stringToBytes(str).length;
+    }
+
+
+    /**
+     * 鑾峰彇鍙戦�佹暟鎹産yte
+     *
+     * @return
+     */
+    public byte[] getSendBytes() {
+        try {
+            //鍒ゆ柇鏄惁闇�瑕佸姞瀵�
+            if (HDLLinkConfig.getInstance().ifNeedEncrypt(topic)) {
+                //闇�瑕佸姞瀵�
+                byte[] dataBytes = AesUtil.aesEncrypt(ByteUtils.stringToBytes(data), HDLLinkConfig.getInstance().getLocalSecret());
+                String headString = "Topic:" + getTopic() + "\r\n" + "Length:" + dataBytes.length + "\r\n" + "\r\n";
+                byte[] headBytes = headString.getBytes("utf-8");
+                byte[] sendBytes = ByteUtils.concatBytes(headBytes, dataBytes);
+                LogUtils.i("鍙戦�佹暟鎹細\r\n" + headString + "\r\n" + data);
+                return sendBytes;
+
+            } else {
+                String sendString = this.toString();
+                LogUtils.i("鍙戦�佹暟鎹細\r\n" + sendString);
+                return sendString.getBytes("utf-8");
+            }
+
+        } catch (Exception e) {
+            return new byte[]{};
+        }
+    }
 }

--
Gitblit v1.8.0