Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    [Java\Android] Utilizzo webservice asmx

    Ciao a tutti.

    Grazie all'aiuto del forum ho realizzato la mia applicazione Android che si collega ad un db MySQL in hosting tramite l'utilizzo del web service.

    Provata sul tablet l'applicazione funziona ma non mi visualizza l'output previsto dal web service che lanciato sul browser invece funziona correttamente.

    In Eclipse il log degli errori è vuoto ma l'output sul tablet è bianco.

    Grazie in anticipo a chi potrà dedicare qualche minuto a questa discussione.
    codice:
    package com.ccmex.myFirstApp;
    
    import android.app.Activity;
    
    
    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapPrimitive;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;
    
    
    import android.os.Bundle;
    import android.widget.TextView;
    
    
    public class WebServiceDemoActivity extends Activity {
    
    
        private final String NAMESPACE = "http://www.nomedominio.com/cartelladominio/";
        private final String URL = "http://www.nomedominio.com/cartelladominio/cartellaWebService/StockService.asmx";
        private final String SOAP_ACTION = "http://www.nomedominio.com/cartelladominio/cartellaWebService/StockService";
        private final String METHOD_NAME = "StockService";
        
         public void onCreate(Bundle savedInstanceState)
         {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             
             SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);          
             SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
             envelope.setOutputSoapObject(request);
             envelope.dotNet = true;
             
             try {
                 
                 SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                 HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
                
                     androidHttpTransport.call(SOAP_ACTION, envelope);
                
                     TextView tv = new TextView(this);
                     tv.setText(response.toString());
                     setContentView(tv);
                     
           } catch (Exception e) {
                 e.printStackTrace();
           }
         }
    }

  2. #2
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Ho fatto alcune modifiche ed adesso ho l'errore applicazione arrestata in modo anomalo, questo è il log:
    codice:
    02-09 11:24:27.550: E/AndroidRuntime(26928): java.lang.NullPointerException
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at com.ccmex.myFirstApp.WebServiceDemoActivity$1.run(WebServiceDemoActivity.java:65)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at android.os.Handler.handleCallback(Handler.java:605)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at android.os.Handler.dispatchMessage(Handler.java:92)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at android.os.Looper.loop(Looper.java:137)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at android.app.ActivityThread.main(ActivityThread.java:4424)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at java.lang.reflect.Method.invokeNative(Native Method)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at java.lang.reflect.Method.invoke(Method.java:511)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    
    02-09 11:24:27.550: E/AndroidRuntime(26928):     at dalvik.system.NativeStart.main(Native Method)
    Questa la classe java WebServiceDemoActivity:
    codice:
    package com.ccmex.myFirstApp;
    
    import android.app.Activity;
    
    
    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapPrimitive;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;
    
    
    import android.os.Bundle;
    import android.os.Handler;
    import android.widget.TextView;
    
    
    public class WebServiceDemoActivity extends Activity {
    
    
        private final String NAMESPACE = "http://www.miodominio.com/WebService";
        private final String URL = "http://www.miodominio.com/cartelladominio/WebService.asmx";
        private final String SOAP_ACTION = "http://www.miodominio.com/WebService/GetCustomers";
        private final String METHOD_NAME = "GetCustomers";
    
    
        private String Webresponse = "";
        private TextView textView;
        private Thread thread;
        private Handler handler = new Handler();
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            textView = (TextView) findViewById(R.id.textView1);
            webAccess();
        }
    
    
        public void webAccess() {
            thread = new Thread() {
                public void run() {
                    try {
                        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                                SoapEnvelope.VER11);
                        envelope.dotNet = true;
                        envelope.setOutputSoapObject(request);
                        HttpTransportSE androidHttpTransport = new HttpTransportSE(
                                URL);
                        androidHttpTransport.call(SOAP_ACTION, envelope);
                        SoapPrimitive response = (SoapPrimitive) envelope
                                .getResponse();
                        Webresponse = response.toString();
                    }
    
    
                    catch (Exception e) {
                        e.printStackTrace();
                    }
    
    
                    handler.post(createUI);
                }
            };
    
    
            thread.start();
        }
    
    
        final Runnable createUI = new Runnable() {
            public void run() {
                textView.setText(Webresponse);
            }
        };
    
    
    }
    Il problema è su questa chiamata:
    codice:
        final Runnable createUI = new Runnable() {
            public void run() {
                textView.setText(Webresponse);
            }
        };
    Se la elimino non ho errore ma non ho l'output del webservice sul tablet.
    Ultima modifica di ubbicom; 09-02-2014 a 12:40

  3. #3
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Risolto grazie a questo tutorial, lo posto forse servirà a qualcuno:
    http://java.dzone.com/articles/invok...rvices-android

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.