我正在尝试使用 XMLPullParser 解析 Soap ProbeMatch 消息。我通过 UDP 多播收到这个。我使用以下代码接收它。
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(作为字符串)时,我在字符串末尾得到了未使用的字节:
</s12:Envelope>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?
最佳答案
首先,我认为您需要按如下方式构造字符串:
String data = new String(packet.getData(),
packet.getOffset(),
packet.getLength());
至于有没有更好的办法。 AIUI 并非如此,尽管可能有第三方 API 可以使填充/清空数据报更容易一些,因为所有字节打包都非常繁琐。
关于xml - 数据报包到 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2849188/