我试图用XMLPullParser解析Soap ProbeMatch消息。我通过UDP Multicast收到此消息。我使用以下代码来接收它。
byte[] buf = new byte[1900];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
mSocket.receive(packet);
// Damn ugly....
String data = new String(packet.getData())
如果我将byte []转换为String,Parser不会吃掉它...有没有更优雅的方法来做到这一点?
当我打印xml(作为String)时,我得到字符串末尾的未使用字节:
</s12:Envelope>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?
答案 0 :(得分:2)
首先,我认为您将要构建String,如下所示:
String data = new String(packet.getData(),
packet.getOffset(),
packet.getLength());
至于有更好的方法。 AIUI并不是真的,尽管可能存在第三方API,这使得填充/清空数据报更容易一些,因为所有字节打包都非常繁琐。