2014-02-20 3 views
0

Пробовал с помощью Async, но получил не обработчику даже нет никакого тоста в нем, также попытался вызов вызова метода runUIThread, но не повезло,Вызов веб-сервиса на Android

ASync метод работает, но он также получает во время выполнения исключение

, когда я использую асинхронный метод данные попадают на TextView слишком поздно (5-10 минут), но когда я использую его в отладчиках он получает мгновенно,

ниже WebService является тестом с использованием wizdl приложения и ответа мгновенно

я запутался, пожалуйста, помогите

private final String NAMESPACE = "http://????????.com/EventGetter/"; 

private final String URL = "http://?????????.com/EventGetter.asmx"; 

private final String SOAP_ACTION = "http://????????.com/EventGetter/GetTimeTable"; 

private final String METHOD_NAME = "GetTimeTable"; 

private class TPaccessData extends AsyncTask<String, Void, Void>{ 

    @Override 
    protected Void doInBackground(String... params) { 
     GetData(); 
     return null; 
    } 
    @Override 
    protected void onPostExecute(Void result) { 

     Log.i(LogStr, "onPostExecute"); 
    } 

    @Override 
    protected void onPreExecute() { 
     GetData(); 
     Log.i(LogStr, "onPreExecute"); 

    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
     Log.i(LogStr, "onProgressUpdate"); 
    } 
} 

public void GetData(){ 
    //Create request 
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
    //set properties aka param 
    request.addProperty("stream","where ttBatch = 'F.Y.J.C'"); 
    //Create envelope 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    //Set output SOAP object 
    envelope.setOutputSoapObject(request); 
    //Create HTTP call object 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
    try { 
     androidHttpTransport.debug = true; 
     //Invole web service 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     //Get the response 
     SoapPrimitive response = (SoapPrimitive) envelope.getResponse(); 
     //Assign it to Text static variable 
     text.setText(response.toString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

также пытались дозвониться получить данные в OnCreate метод

NotifyList.this.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      GetData(); 
      // TPaccessData task = new TPaccessData(); 
      // task.execute(); 
     } 
    }); 
+1

Почему вы используете этот код @Override protected void onPreExecute() { GetData(); Log.i (LogStr, "onPreExecute"); } –

ответ

2

Удалить youe GetData() метод из onPreExecute() и называют эту линию внутри onPost

text.setText(response.toString()); 
+0

попробовал, все работает нормально, можете ли вы рассказать, как я могу добавить значение нулевого значения – jtushar53

+0

, не получая то, что вы хотите задать? – Sonali8890

+0

Метод GetTimeTable имеет один параметр, когда я ввожу этот параметр, он не идет в качестве параметра, не знаю почему, – jtushar53