Note that there are some explanatory texts on larger screens.

plurals
  1. POTo display Soap Response (Array) in Android
    primarykey
    data
    text
    <p>I studied a lot and tried to solve it but I am facing the problem to show the response on screen.</p> <p>Soap Service Code is::</p> <pre><code>POST /ws1.asmx HTTP/1.1 Host: www.xyz.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://xyx.com/webservices/LoadServices" &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&gt; &lt;soap:Body&gt; &lt;LoadServices xmlns="http://xyz.com/webservices/" /&gt; &lt;/soap:Body&gt; &lt;/soap:Envelope&gt; HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&gt; &lt;soap:Body&gt; &lt;LoadServicesResponse xmlns="http://xyz.com/webservices/"&gt; &lt;LoadServicesResult&gt; &lt;anyType /&gt; &lt;anyType /&gt; &lt;/LoadServicesResult&gt; &lt;/LoadServicesResponse&gt; &lt;/soap:Body&gt; &lt;/soap:Envelope&gt; </code></pre> <p>I am using 2 classes in Java. And here are the codes of it.</p> <p>Firstly I am adding Category.java Code:</p> <pre><code>import java.util.Hashtable; import org.ksoap2.serialization.KvmSerializable; import org.ksoap2.serialization.PropertyInfo; import android.util.Log; public class Category implements KvmSerializable { public int CompanyId; //0 public int ServiceId; //1 public String ServiceMessage; //2 public int ServiceCategoryId; //3 public boolean IsVisibleForUser; //4 public String ServiceName; //5 public String Serviceform; //6 public char IsActive; //7 public String ServiceImage; //8 public String ServiceCode; //9 public String RequestFulfilledMsg; //10 public String ToDoPendingRequest; //11 public String CompanyName; //12 public String ServiceCategoryName; //13 public String ThumbnailImage; //14 public String ServiceDescription; //15 public Category() {} public Category(int coid, int servId, int scid) { CompanyId = coid; ServiceId = servId; ServiceCategoryId = scid; } public Object getProperty(int arg0) { Log.i("Category", "msg:getProperty"); switch(arg0) { case 0: return CompanyId; case 1: return ServiceId; case 3: return ServiceCategoryId; } return null; } public int getPropertyCount() { Log.i("Category", "msg:getPropertyCount(3)"); return 3; } public void getPropertyInfo(int index, Hashtable arg1, PropertyInfo info) { Log.i("Category", "msg:getPropertyInfo"); switch (index) { case 0: info.type = PropertyInfo.INTEGER_CLASS; info.name = "CompanyId"; break; case 1: info.type = PropertyInfo.INTEGER_CLASS; info.name = "ServiceId"; break; case 3: info.type = PropertyInfo.INTEGER_CLASS; info.name = "ServiceCategoryId"; break; default: break; } } public void setProperty(int index, Object value) { Log.i("Category", "msg:SetProperty"); switch (index) { case 0: CompanyId = Integer.parseInt(value.toString()); break; case 1: ServiceId = Integer.parseInt(value.toString()); break; case 3: ServiceCategoryId = Integer.parseInt(value.toString()); break; default: break; } } } </code></pre> <p>And now the code of root activity, i.e. WebServiceEx.java</p> <pre><code>public class WebServiceEx extends Activity { private final String NAMESPACE = "http://xyz.com/webservices/"; private final String URL = "http://www.abc.com/ws1.asmx"; private final String SOAP_ACTION = "http://xyz.com/webservices/LoadServices"; private final String METHOD_NAME = "LoadServices"; //public Array array = null; //String arr[] = null; TextView tv; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); LoadSoapService(); setContentView(tv); } private void LoadSoapService() { Log.i("WebService", "msg:soap enter"); SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); Category C = new Category(); C.ServiceCategoryId = 1; Log.i("WebService", "msg:Category"); Log.i("WebService", "msg:Property"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); Log.i("WebService", "msg:Request"); envelope.addMapping(NAMESPACE, "Category", new Category().getClass()); HttpTransportSE transportSE = new HttpTransportSE(URL); Log.i("WebService", "msg:try_out"); try { Log.i("WebService", "msg:try+in"); transportSE.call(SOAP_ACTION, envelope); Log.i("WebService", "msg:SoapObject"); SoapObject response = (SoapObject)envelope.getResponse(); /**error here, wents to exception **/ Log.i("WebService", "Response"); Log.i("WebSrv", response.toString()); C.ServiceCategoryId = Integer.parseInt(response.getProperty(3).toString()); tv.setText(" "+C.ServiceCategoryId); } catch (Exception e) { e.printStackTrace(); Log.i("WebService", "msg:Exception error"); } } } </code></pre> <p>I had add the comment from where the problem occurs, Moreoever if I am missing something do tell me, As everything is in front of you.</p> <p>I have added ksoap2 to external Jar and has added Internet Permissions, All I have problem is a blank screen.</p> <p>Hope to get some idea,</p> <p>Thanks, Harpreet.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload