When to use Soapobject and SoapPrimitive

Shachi picture Shachi · May 16, 2013 · Viewed 14.9k times · Source

I have been working with ksoap2 lately.

I am still confused whether what is the EXACT difference between SoapObject and SoapPrimitive.

And when to use them.

I guess its something related to string and arrays. Is it true?

I found some links but got confused.

Can anyone tell me the difference and when to use which one in the simplest form of English?

Thanks :)

Answer

Akshay Joy picture Akshay Joy · May 16, 2013

SoapObject is used when we need to get the Response for a Class type, like Customer, Product, etc. (From the SoapObject you need to iterate over the values inside the SoapResponse.) SoapPrimitive is used for Primitive datatypes like Integer, Boolean.

For example, in the following code I am expecting a Boolean value from SoapResponse:

SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
Boolean status = Boolean.valueOf(response.toString());

And in the following code, I need to get the Response as an Object:

SoapObject response = (SoapObject) envelope.getResponse();
Log.d("Response", response.toString());
int count = response.getPropertyCount();

for (int i = 0; i < count; i++) {
    userObj = new User(response.getProperty(1).toString(),
                       Double.parseDouble(response.getProperty(2).toString()));  
}