androidsoapksoap2android-ksoap2ksoap

When to use Soapobject and SoapPrimitive


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 :)


Solution

  • 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()));  
    }