Datagrampacket to xml - PullRequest
       51

Datagrampacket to xml

1 голос
/ 17 мая 2010

Я пытаюсь проанализировать сообщение Soap ProbeMatch с помощью XMLPullParser.Я получаю это через 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())

Если я преобразую байт [] в строку, то парсер его не ест ... Есть ли более изящные способы сделать это?

Когда я печатаю xml (как строку), я получаю неиспользованные байты в конце строки:

</s12:Envelope>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?

1 Ответ

2 голосов
/ 17 мая 2010

Во-первых, я думаю, вы захотите построить строку следующим образом:

String data = new String(packet.getData(), 
                         packet.getOffset(), 
                         packet.getLength());

Что касается лучшего способа.AIUI не совсем, хотя может быть сторонний API, который немного облегчает заполнение / очистку дейтаграмм, так как упаковка байтов очень трудоемка.

...