Salut à tous, je vais avoir un petit problème avec ksoap2 et obtenir la réponse j'ai le code suivant sur le côté client Blackberry:problème avec réponse Ksoap2
private boolean AddVoiceNote()
{
_webMethod = "AddVoiceNote";
_soapAction.concat(_webMethod);
Boolean response = null;
SoapObject methodCall = new SoapObject(_serviceNameSpace, _webMethod);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.bodyOut = methodCall;
soapEnvelope.dotNet = false;
soapEnvelope.encodingStyle = SoapSerializationEnvelope.XSD;
soapEnvelope.setOutputSoapObject(methodCall);
methodCall.addProperty("name", _voiceNote.get_nombre());
methodCall.addProperty("comment", _voiceNote.get_comentario());
methodCall.addProperty("audio", Base64.encode(_voiceNote.get_audioArray()));
methodCall.addProperty("id", String.valueOf(_voiceNote.get_userId()));
methodCall.addProperty("postTwitter", String.valueOf(_voiceNote.is_twitterPost()));
methodCall.addProperty("postFacebook", String.valueOf(_voiceNote.is_facebookPost()));
HttpTransport transport = new HttpTransport(_serviceURL);
transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
try {
transport.call(_soapAction, soapEnvelope);
SoapObject responseSoap = (SoapObject)soapEnvelope.getResponse();
response = (Boolean)responseSoap.getProperty("return");
System.out.println(responseSoap.toString());
return response.booleanValue();
} catch (IOException e) {
return false;
} catch (XmlPullParserException e) {
return false;
}
}
Et ceci est la méthode web, il appelle:
@WebMethod(operationName = "AddVoiceNote")
public Boolean AddVoiceNote(
@WebParam(name = "name")String name,
@WebParam(name = "comment")String comment,
@WebParam(name = "audio")String audio,
@WebParam(name = "id")String id,
@WebParam(name = "postTwitter")String postTwitter,
@WebParam(name = "postFacebook")String postFacebook)
{
VoiceNote voiceNote = new VoiceNote();
VoiceNoteMananger voiceNoteManager = new VoiceNoteMananger();
voiceNote.setComentario(comment);
voiceNote.setNombre(name);
voiceNote.setIdUser(Long.parseLong(id));
voiceNote.setFacebookPost(Boolean.getBoolean(postFacebook));
voiceNote.setTwitterPost(Boolean.parseBoolean(postTwitter));
voiceNote.setTrack(audio.getBytes());
return voiceNoteManager.addVoiceNote(voiceNote);
}
le problème que je vais avoir est bien obtenir la réponse, je reçois un ClassCastException en essayant de l'obtenir et le débogueur juste sort de la méthode, toute idée comment je peux résoudre ce problème? Oh est ici aussi le xml de réponse que je reçois de mon Web Méthode:
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:AddVoiceNoteResponse xmlns:ns2="http://WebService/">
<return>true</return></ns2:AddVoiceNoteResponse>
</S:Body>
</S:Envelope>
Quel est le ClassCastException? –
arrive sur cette ligne SoapObject responseSoap = (SoapObject) soapEnvelope.getResponse(); dit juste ClassCastException – 8vius
Après avoir changé la distribution de SoapObject à l'objet y notez que getResponse() est null T_T – 8vius