2017-10-24 36 views
0

私は最終年度のプロジェクトをやっています。MQTTブローカーにファイルを添付してバイト配列形式でしか公開できないJSONを送信する必要があります。 .toString().getByte()を使用すると、ファイルデータが失われます。MQTT経由でバイト配列にJSON(ファイルを添付)を送信または変換する方法は?

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); 

どうすれば送信できますか?

+0

ヒント:ファイルの生のバイトは埋め込むことができず、それでも有効なjsonとなります。ファイルを文字列としてエンコードする方法を探します。 – hardillb

+0

OK、ありがとう、私は文字列にエンコードし、正常に送信する方法を見つけました。 – xRay

+1

解決策を回答として追加して受け入れることは自由です。私はあなたのためにプロジェクトを行う準備ができていませんでした。 – hardillb

答えて

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); 
関連する問題