如何通过MQTT将JSON(附加文件)发送或转换为字节数组?

时间:2017-10-24 14:36:37

标签: android mqtt

我正在做我的最后一年项目,我需要发送一个JSON,它将一个文件附加到MQTT代理,它只能以字节数组格式发布。如果我使用.toString().getByte(),则文件数据将丢失。

JSONObject json = new JSONObject();
    json.put("command", "123");
    json.put("reserve","123");
    json.put("file", fullyReadFileToBytes(file));

MqttMessage message2 = new MqttMessage(json.toString().getBytes("utf-8"));
mqttAndroidClient.publish(subscriptionTopic,message2 );

我该如何发送?

1 个答案:

答案 0 :(得分:0)

我尝试这种编码,它可以发送带有字节的文件。

String encoded = Base64.encodeToString(fullyReadFileToBytes(file), Base64.DEFAULT);

json.put("file", encoded);

MqttMessage message2 = new MqttMessage(json.toString().getBytes("utf-8"));

mqttAndroidClient.publish(subscriptionTopic,message2 );