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>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?
Était-ce utile?

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
scroll top