Question

J'ai un problème tout en appelant le webservice, j'ai un service Web .NET dans le serveur et je suis en utilisant KSOAP (ksoap2-android-montage-2.5.7-jar-with-dependencies.jar) dans Android. Pendant l'exécution du programme que je suis une exception d'exécution nommé « org.ksoap2.serialization.SoapPrimitive ».

J'ai essayé avec les options que je readed dans le lien suivant: Comment appeler un Webservice .NET à partir d'Android en utilisant KSOAP2 et kSoap2 Android - classe Exception Cast (SoapObject) mais rien ne me aide

mon code:

try{
            //Conexión a Web Service
            SoapObject Solicitud = new SoapObject(NAMESPACE, METODO);

            PropertyInfo sector = new PropertyInfo();
            sector.setName("sector");
            sector.setValue(sectorX.toString());
            Solicitud.addProperty(sector);

            SoapSerializationEnvelope Envoltorio = new SoapSerializationEnvelope (SoapEnvelope.VER12);
            Envoltorio.dotNet = true;

            Envoltorio.setOutputSoapObject (Solicitud);

            HttpTransportSE TransporteHttp = new HttpTransportSE(URL);
            TransporteHttp.call (SOAP_ACTION, Envoltorio);

          //Obtencion de datos
            SoapObject resultado = (SoapObject)Envoltorio.getResponse();

            final String[] testValues = new String[resultado.getPropertyCount()];
            final Number[] serie = new Number[resultado.getPropertyCount()];

            for(int i= 0; i< resultado.getPropertyCount(); i++){
                String x = ""; 
                SoapObject wii = (SoapObject)resultado.getProperty(i);
                x += wii.getPropertyAsString(1);                
                testValues[i] = wii.getPropertyAsString(1);
                x.trim();
                serie[i]=Integer.parseInt(x);
            }

        ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, R.layout.lista_sectores, testValues);
        final ListView LstOpciones = (ListView) findViewById(R.id.LstOpciones);
        LstOpciones.setAdapter(adaptador);

        LstOpciones.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View itemClicked,
                    int position, long id) {
                // TODO Auto-generated method stub
                TextView textview = (TextView)itemClicked;
                String strText = textview.getText().toString(); 
                seleccion.setText("Seleccionado: " + strText);

            } catch (Exception e){
        txtMensaje.setText(e.getMessage());
            }

Où sectorX c'est un paramètre de chaîne que je donne à WS.

J'ai essayé le service Web sans paramètres et ça marche! Le problème est quand j'envoie le paramètre ... Je suppose que: /

Était-ce utile?

La solution

Il ne fait pas exception de ce nom. Vous obtenez probablement une exception class cast. Si vous déboguez vous constaterez probablement que votre réponse est un SoapObject. Alors utilisez-vous getProperty ou getAttribute ou quoi que sur elle. Si vous définissez un point de pause, vous pourrez parcourir le graphe d'objets et d'assembler votre code d'analyse syntaxique manuellement ..

Peut-être le poster quelque part StackTrace ..

Autres conseils

Vous pouvez essayer d'utiliser seulement ' Objet au lieu d'utiliser 'SoapObject'. Ça marche pour moi. Espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top