SOAP Client provide a wrapper and simple unified API to the NuSOAP and PHP5 SOAP extension and allow the other modules to access SOAP-based web services on any servers on the internet.
Soap Client module no longer includes nuSOAP library in the CVS or package. If you need nuSOAP support, you will have to download from an external site. This version is tested and working, and is the only I'm aware of being maintained, so don't forget to download nuSOAP if you don't have PHP SOAP extension available or your project requires this library. Extract the lib folder in sites/all/plugins or sites/all/libraries or inside the soapclient module folder. You will be able to configure the location of the nuSOAP library under the settings section of the soap client module.
The API is including:
- soapclient_get_libname() - return the currently used SOAP library.
- soapclient_init_client($endpoint, $use_wsdl, $options = array()) - Initialise the SOAP client.
When soapclient_init_client() is called, it will return an instance of DrupalSoapClient object which is the wrapper class to the SOAP client. The DrupalSoapClient provides 2 major functionalities:
- A method "call" to invoke the remote service
- Trap any exceptions and convert them to an error. Caller can just simple handle the error to cover both error and exception.
All functions and methods in this module return the result in an associative array with 2 keys:
- '#error' - set to 'FALSE' if the call is succeed or an error message if any error occur
- '#return' - the result return from the function in an associative array (nuSOAP format)
For more example, please check the function soapclient_test_submit() in the module code.
Check greg.harvey's blog for the example of the Complex-Type data here http://www.drupaler.co.uk/blog/complex-calls-soap-client/77.