Herong's Tutorial Notes on Web Service and SOAP
Dr. Herong Yang, Version 4.00

Perl SOAP::Lite for GetSpeech SOAP 1.1 Web Service

This chapter provides tutorial examples and notes on calling GetSpeech SOAP 1.1 Web service using SOAP::Lite. Topics include using on_action() function to provide call back function to generate correct SOAPAction header line; using SOAP::Data class to create parameter elements with specific names and namespaces; calling GetSpeech SOAP 1.1 Web service at xmlme.com.

GetSpeech Failed - Incorrect SOAPAction Header Line

GetSpeech Failed - Incorrect Parameter Name c-gensym

Using Socket Program to Request Parameter Name

GetSpeech Worked - Using SOAP::Data Class and on_action() Function

GetSpeech_SOAP_1_1.pl - SOAP::Lite for SOAP 1.1 Web Service

Conclusions:

  • By default, SOAP::Lite sets SOAPAction to $uri#$method. This is not good for some Web service providers, because they expect $uri/$method. You need to use on_action() to provide your own call back function to change the default behavior.
  • By default, SOAP::Lite names parameter elements as c-gensym* in the remote method call. This is not good for some Web service providers, because they expect specific parameter names. You need to use the SOAP::Data class to build parameters in your own way.
  • SOAP::Lite can be used to call the SOAP 1.1 GetSpeech Web service provided by xmlme.com in RPC style.
  • Socket test program, SocketRequestResponseBinary.pl, is a nice quick tool to test your SOAP HTTP requests.

Dr. Herong Yang, updated in 2009
Perl SOAP::Lite for GetSpeech SOAP 1.1 Web Service