hxb
2022-02-17 af2cbc2a24b3724e7fc3e6b42e134b21a3144c75
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;
    }
    /**
     * 获取发送数据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[]{};
        }
    }
}