golang后端与android端TCP Socket通信数据解析格式问题
1.golang tcp server , android tcp client。
2.golang 发送将json字符串转为byte[]对象到android端,android读取到byte[],解析成string乱码,不是理想的json字符串。
3.解决方式
golang tcp server 端,首先将Object对象用json.marshal转为byte[],然后将byte[]转为base64字符串(base64.stdEncoding.EncodingToString),最后将数据通过socket发送出去(con.Write([]byte(dst)))
android tcp client端,首先读取read接收数据为byte[] msg。
Gson gson = new Gson(); byte[] data = android.util.Base64.decode(msg, android.util.Base64.DEFAULT); // new String()将byte[]转为json字符串string String dst = new String(data); LogUtil.d(dst); DeviceVideo video = (DeviceVideo) gson.fromJson(dst, DeviceVideo.class); LogUtil.d("解析后的结果:" + video.getVideo_path());