Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Friday, 5 September 2014

Android : SOAP services call form remote server with ServiceCaller class

package com.mastermoin.java;


import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;

import com.mastermoin.java.bean.UserBean;

public class ServiceCallTest {

       private static String METHOD_NAME = "Authenticate";
       public static String URL = SERVER + "nService.asmx";
       public static String SOAP_ACTION = "http://tempuri.org/";
       public static String NAMESPACE = "http://tempuri.org/";

       public UserBean UserTest(UserBean aBean) {

              final String svalue = "aBean";

              SoapObject requestObject = new SoapObject(NAMESPACE,
                           METHOD_NAME);

              requestObject.addProperty(svalue, aBean);

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

              envelope.setOutputSoapObject(requestObject);

              envelope.addMapping(NAMESPACE,
                           UserBean.UserBean_CLASS.getSimpleName(),
                           UserBean.UserBean_CLASS);

              final Object response = new ServiceCaller().call(SOAP_ACTION
                           + METHOD_NAME, envelope, URL);
              UserBean userBean = null;
              if (response != null) {
                     try {
                           if (response != null) {
                                  userBean = new UserBean((SoapObject) response);
                           }
                     } catch (Exception e) {
                           e.printStackTrace();
                     }
              }

              return userBean;
       }


}




Android : common service caller class with ksoap2 library


package com.mastermoin.java;

import java.io.IOException;

import org.ksoap2.serialization.Marshal;
import org.ksoap2.serialization.MarshalDate;
import org.ksoap2.serialization.MarshalFloat;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

public class ServiceCaller {

       private boolean isResultVector = false;

       public Object call(String soapAction, SoapSerializationEnvelope envelope,
                     String URL) {

              Object result = null;

              Marshal dateMarshal = new MarshalDate();
              dateMarshal.register(envelope);
              Marshal floatMarshal = new MarshalFloat();
              floatMarshal.register(envelope);

              final HttpTransportSE transportSE = new HttpTransportSE(URL);

              transportSE.debug = false;

              try {
                     transportSE.call(soapAction, envelope);
                     if (!isResultVector) {
                           result = envelope.getResponse();
                     } else {
                           result = envelope.bodyIn;
                     }
              } catch (final IOException e) {
                     e.printStackTrace();
              } catch (final XmlPullParserException e) {
                     e.printStackTrace();
              } catch (final Exception e) {
                     e.printStackTrace();
              }
              return result;
       }

}