получить несколько данных из веб-сервиса с помощью SOAP в Android

#android #soap

#Android #soap

Вопрос:

Я получаю отдельные данные из веб-сервиса, используя SOAP в Android, и они хорошо отображаются.Но когда мне нужно получить несколько наборов значений из веб-сервисов..Как я мог это сделать?Например. из веб-сервиса., я получаю 10 наборов записей учащихся с полями stu.Name ,стуРеньо.,Стуаж.После получения ответа на это. мне нужно проанализировать его, чтобы сохранить в локальной базе данных с соответствующими именами полей.Как я мог это сделать?

Мой код:

  public class Main extends Activity {
    private static final String METHOD_NAME = "TopGoalScorers";
     private static final String SOAP_ACTION = "http://footballpool.dataaccess.eu/data/TopGoalScorers";
     private static final String NAMESPACE = "http://footballpool.dataaccess.eu";
     private static final String URL = "http://footballpool.dataaccess.eu/data/info.wso?WSDL";

    //Called when the activity is first created. 
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);

            //Buttons deaktiviert alles automatisch

            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
            request.addProperty("iTopN", 3);// username von Preferences abgeholt
            //request.addProperty("intB", 4);


            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            Toast.makeText(getApplicationContext(), request.toString(), Toast.LENGTH_LONG).show();
            envelope.setOutputSoapObject(request);
            AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);             
            try {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                //Parse Response
                SoapObject resultsRequestSOAP = (SoapObject) envelope.getResponse();
                String xy = resultsRequestSOAP.getProperty(0).toString();
                ((TextView)findViewById(R.id.lblStatus)).setText(xy); 


            } catch(Exception E) {

                ((TextView)findViewById(R.id.lblStatus)).setText("ERROR:"   E.getClass().getName()   ": "   E.getMessage());

            }
    }

    }  
  

Ответ №1:

Я не понимаю, в чем ваша проблема. Вам нужно преобразовать resultsRequestSOAP в соответствующий формат данных (например, String) и проанализировать его (например, через SAX), а в вашем анализаторе собрать все данные в контейнер (например, список).