私は初心者です。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();
}
}
}