562935844@qq.com
2023-10-18 c1e8d3a7709295a52814378e73a68e1e1fd20da6
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
@@ -1,8 +1,13 @@
package com.hdl.sdk.connect.bean;
import android.text.TextUtils;
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.
@@ -10,6 +15,7 @@
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);
        }
@@ -50,7 +56,6 @@
        this.length = length;
    }
    @NonNull
    @Override
    public String toString() {
        return "Topic:" +
@@ -61,4 +66,38 @@
                "\r\n\r\n" +
                getData();
    }
    private int getBytesLength(String str) {
        return ByteUtils.stringToBytes(str).length;
    }
    /**
     * 获取发送数据byte
     *
     * @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[]{};
        }
    }
}