java - Issues casting SoapObject for KSOAP2 -


ok trying pass list object asp android using ksoap2. able connect web service, have tested service return basic bool start with, need service return list object filled log in variables. getting error: error on soapprimitivedata() org.ksoap2.soapfault cannot cast org.ksoap2.serialization.soapobject

java:

public class mainactivity extends actionbaractivity { private final string namespace = "http://tempuri.org/"; private final string url = "http://www.mycompanysurl.net/companyservice/reportingservice.asmx";  string user_id; string password;  textview text;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     button signin = (button) findviewbyid(r.id.btnlogin);     text = (textview) findviewbyid(r.id.txtout);     signin.setonclicklistener(new onclicklistener() {         public void onclick(view v) {               edittext etxt_user = (edittext) findviewbyid(r.id.txtuser);             user_id = etxt_user.gettext().tostring();             edittext etxt_password = (edittext) findviewbyid(r.id.txtpass);             password = etxt_password.gettext().tostring();              new logintask().execute();          }     }); }    private boolean dologin(string user_id, string password) {     string ip = utils.getipaddress(true);      boolean result = false;     final string soap_action = "http://tempuri.org/getlogin";     final string method_name = "getlogin";     soapobject request = new soapobject(namespace, method_name);      request.addproperty("user", user_id);     request.addproperty("pass", password);     request.addproperty("ip",ip);      soapserializationenvelope envelope = new soapserializationenvelope(soapenvelope.ver11);     envelope.dotnet = true;     envelope.setoutputsoapobject(request);      // make soap call.     httptransportse androidhttptransport = new httptransportse(url);     try {         androidhttptransport.call(soap_action, envelope);          // soapresult envelope body.         //error seems happen here.         soapobject resultrequestsoap = (soapobject) envelope.bodyin;          soapobject root = (soapobject) resultrequestsoap.getproperty(0);         soapobject s_deals = (soapobject) root.getproperty("foo_deals");          (int = 0; < s_deals.getpropertycount(); i++)         {             object property = s_deals.getproperty(i);             if (property instanceof soapobject)             {                 soapobject category_list = (soapobject) property;                 string loginid = category_list.getproperty("login_id").tostring();                 string userid = category_list.getproperty("userid").tostring();                 string login_access = category_list.getproperty("login_access").tostring();                 string login_compid = category_list.getproperty("login_compid").tostring();                 string login_profileid = category_list.getproperty("login_profileid").tostring();                 string login_displayname = category_list.getproperty("login_displayname").tostring();                 string login_customertype = category_list.getproperty("login_customertype").tostring();                 string active = category_list.getproperty("active").tostring();                  if (active == "1") {                     result = true;                     text.settext("logged in");                 } else {                      text.settext("not logged in");                 }             }         }     } catch (socketexception ex) {         log.e("error : ", "error on soapprimitivedata() " + ex.getmessage());         ex.printstacktrace();     } catch (exception e) {         log.e("error : ", "error on soapprimitivedata() " + e.getmessage());         e.printstacktrace();     }     return result;  }   private class logintask extends asynctask<void, void, void> {      private final progressdialog dialog = new progressdialog(             mainactivity.this);      protected void onpreexecute() {          this.dialog.setmessage("logging in...");         this.dialog.show();      }       protected void doinbackground(final void... unused) {          boolean auth = dologin(user_id, password);         system.out.println(auth);          return null;     }       protected void onpostexecute(void result) {         if (this.dialog.isshowing()) {             this.dialog.dismiss();         }     } } } 

asp:

 [webmethod]  public list<loginobject> getlogin(string user, string pass, string ip)  {     sqlconnection conn = new sqlconnection(my_db.credentials);     sqldatareader rdr = null;     list<loginobject> loginlist = new list<loginobject>();      bool login_in_ok = false;      string date = datetime.now.tostring();     string userid1 = "";     string login_id1 = "";     string login_access1 = "";     string login_compid1 = "";     string login_profileid1 = "";     string login_displayname1 = "";     string login_customertype1 = "";     string active1 = "";      try     {         conn.open();         sqlcommand cmd = new sqlcommand("usp_user_login", conn);          cmd.parameters.add(new sqlparameter("@login", user));         cmd.parameters.add(new sqlparameter("@pwd", pass));         cmd.parameters.add(new sqlparameter("@ip_addr", ip));         cmd.parameters.add(new sqlparameter("@local_datetime", date));          cmd.commandtype = commandtype.storedprocedure;          rdr = cmd.executereader();          while (rdr.read())         {                             userid1 = rdr["userid"].tostring();             login_id1 = rdr["id"].tostring();             login_access1 = rdr["access"].tostring();             login_compid1 = rdr["companyid"].tostring();             login_profileid1 = rdr["profileid"].tostring();             login_displayname1 = rdr["lname"].tostring() + " " + rdr["fname"].tostring();             login_customertype1 = rdr["login_customer_type"].tostring();             active1 = rdr["active"].tostring();                         }                 }         {         if (rdr != null)         {             rdr.close();         }          if (conn != null)         {             conn.close();         }     }                login_in_ok = active1 == "1" || active1 == "true" ? true : false;      if (login_in_ok)     {         //dataset andriod login.          loginlist.add(new loginobject          {              login_id = login_id1,              userid = userid1,              login_access = login_access1,             login_compid = login_compid1,             login_profileid = login_profileid1,             login_displayname = login_displayname1,             login_customertype = login_customertype1,             active = active1         });     }     else     {         //empty set android register         loginlist.add(new loginobject         {             login_id = "",             userid = "",             login_access = "0",             login_compid = "",             login_profileid = "",             login_displayname = "",             login_customertype = "",             active = active1         });     }      return loginlist; } 

any great.

actually works, had issue stored procedure... have love when other developers change things , not inform anyone.


Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -