1

私は初心者です。SOAP を返す Azure Web サービスを使用する Android アプリを作成しています。Web サービスへのアドレスはhttp://XXXXXXXX.cloudapp.net/Service.svc/ です

サービスを利用するために ksoap2 を使用しています。すべてのベースをカバーしたいと思います。Android デバイスにインターネット接続がない場合を処理しました。ただし、Web サービスがダウンしているというまれなケースに対処したいと考えています。

人々はこれをどのように行っていますか?キャッチである種の例外ハンドラを使用しますか? どのキャッチ?前もって感謝します。私は AsyncTask を使用しています:

  public class getSetWSDate extends AsyncTask<Void, Void, Void>

{

   ProgressDialog dialog;

   @Override
   protected void onPreExecute() {
       // TODO Auto-generated method stub
       super.onPreExecute();

       dialog = ProgressDialog.show(activity, "", "Please wait...");

   }

   @Override
   protected Void doInBackground(Void... params) {
       // TODO Auto-generated method stub

       try {
            SoapObject request = new SoapObject(NAMESPACE, DATE_METHOD_NAME); 

               SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
               envelope.dotNet = true;
               envelope.setOutputSoapObject(request);

               HttpTransportSE ht = new HttpTransportSE(URL);
               ht.debug = true;

               ht.call(SOAP_ACTION_DATE, envelope);


               final  SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
               final String strDate = response.toString();


               SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
                Date webServiceDate = new Date(); //"2013-07-07 10:00:00" 
                try {

                    webServiceDate = (Date)dateFormat.parse(strDate);
                } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                catch (Exception e) {
                      e.printStackTrace();
                  }
       syncDateDatasource.open();


   syncDateDatasource.createDate(webServiceDate);
   syncDateDatasource.close();
       }        catch (Exception e) {
              e.printStackTrace();
          }
       return null;
   }

   @Override
   protected void onPostExecute(Void result) {
       // TODO Auto-generated method stub
       super.onPostExecute(result);

       if(dialog.isShowing())
       {
           dialog.dismiss();
       }

       try {
         ....


       } catch (Exception e) {
                  e.printStackTrace();
              }

   }

}

4

0 に答える 0