Ответ 1
SoapObject используется, когда нам нужно получить ответ для типа класса, например Customer, Product и т.д. (из SoapObject вам нужно перебирать значения внутри SoapResponse.) SoapPrimitive используется для примитивных типов данных, таких как Integer, Boolean.
Например, в следующем коде я ожидаю логическое значение из SoapResponse:
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
Boolean status = Boolean.valueOf(response.toString());
И в следующем коде мне нужно получить ответ как объект:
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()));
}