Datagrampacket à XML
Question
Im essayant d'analyser un message SOAP ProMatch avec XMLPullParser. Je le reçois via la multidiffusion UDP. J'utilise le code suivant pour le recevoir.
byte[] buf = new byte[1900];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
mSocket.receive(packet);
// Damn ugly....
String data = new String(packet.getData())
Si je convertisse l'octet [] pour enriguer l'analyseur ne le mange pas ... y a-t-il d'autres moyens élégants de le faire?
Lorsque j'imprime le XML (en tant que chaîne), j'obtiens les octets inutilisés à la fin de la chaîne:
</s12:Envelope>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?
La solution
Tout d'abord, je pense que vous voudrez construire la chaîne comme suit:
String data = new String(packet.getData(),
packet.getOffset(),
packet.getLength());
Quant à la meilleure façon. AIUI pas vraiment, bien qu'il puisse y avoir une API tierce qui facilite le remplissage / la vidange des datagrammes, car tout l'emballage d'octets est très délicat.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow