I've only had experience with kSOAP2, which uses the SOAP protocol to make RPC to a server. It has no support for WSDL specifications, so you have to write the objects and methods wrappers yourself. To send and receive a custom objects (and not just the generic SoapObject), you can either use a custom Marshal class, or make the objects implement KvmSerializable (preferably trough some common base class). Don't forget to register your types with your SoapSerializationEnvelope object. Do download it, go to code.google.com/p/ksoap2-android.
-- MizardX (so)