2010-06-01 6 views
1

Je n'arrive pas à comprendre pourquoi je ne peux pas obtenir la réponse d'un appel à un service Web en utilisant ksoap2.ksoap2 ne fonctionne pas

L'appel envoie une valeur MSISDN à un service Web et doit renvoyer une chaîne. Je peux voir sur le service Web qu'il est appelé et la chaîne est renvoyée mais je ne peux pas voir la chaîne retournée sur le périphérique.

Mon code est comme suit:

  SoapObject request = new SoapObject("http://fc.mobiledatacapture/", "getParameters"); 
      request.addProperty("arg0", MSISDN); 
      SoapSerializationEnvelope envelope = 
       new SoapSerializationEnvelope(SoapSerializationEnvelope.VER10); 

      envelope.bodyOut = request; 

      HttpTransport ht = new HttpTransport(url); 

      //call web service method 
      ht.call("\"getParameters\"", envelope); 

      SoapObject response = (SoapObject)envelope.getResponse(); //marker 

      parameterString = (String) response.getProperty(0); 

donc je sais que le service Web est appelé, mais je n'obtenir un résultat pour parameterString. Après avoir ajouté des impressions et des vérifications d'erreurs, j'ai trouvé que le code ne dépassait pas la ligne avec le commentaire - "// marqueur". Juste avant cette ligne j'ai fait un contrôle pour voir si l'enveloppe était nulle et ce n'était pas le cas. Pourtant, ce bloc de code attrape une erreur nulle.

Donc je suppose que cela signifie que la réponse est nulle, mais comment puis-je obtenir la valeur retournée par le service Web?

Répondre

1

Pas de soucis. J'ai changé le code comme suit et j'ai eu la chaîne mon service Web retourné:

Object response = envelope.getResponse(); 
    parameterString = response.toString();