SOAP Web Service Tutorials - Herong's Tutorial Examples - Version 5.02, by Dr. Herong Yang
Using SOAP Extension in non-WDSL Mode
This section describes a tutorial example on how to use PHP SOAP Extension client functions without WSDL.
I think we had enough fun with the WSDL mode. Let's try the non-WSDL mode now. Here is the third version of my getTemp SOAP client program, GetTempNonWsdl.php:
<?php # GetTempNonWsdl.php # Copyright (c) 2005 by Dr. Herong Yang # $zip = "123456"; $client = new SoapClient(null, array( 'location' => "http://services.xmethods.net:80/soap/servlet/rpcrouter", 'uri' => "urn:xmethods-Temperature-Demo", 'trace' => 1 )); echo("\nDumping client object:\n"); var_dump($client); $return = $client->__soapCall("getTemp",array($zip)); echo("\nReturning value of __soapCall() call: ".$return); echo("\nDumping request headers:\n" .$client->__getLastRequestHeaders()); echo("\nDumping request:\n".$client->__getLastRequest()); echo("\nDumping response headers:\n" .$client->__getLastResponseHeaders()); echo("\nDumping response:\n".$client->__getLastResponse()); ?>
Here is output:
Dumping client object: object(SoapClient)#1 (4) { ["uri"]=> string(29) "urn:xmethods-Temperature-Demo" ["location"]=> string(54) "http://services.xmethods.net:80/soap/servlet/rpcrouter" ["trace"]=> int(1) ["_soap_version"]=> int(1) } Returning value of __soapCall() call: 52 Dumping request headers: POST /soap/servlet/rpcrouter HTTP/1.1 Host: services.xmethods.net Connection: Keep-Alive User-Agent: PHP SOAP 0.1 Content-Type: text/xml; charset=utf-8 SOAPAction: "urn:xmethods-Temperature-Demo#getTemp" Content-Length: 508 Dumping request: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:xmethods-Temperature-Demo" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body><ns1:getTemp> <param0 xsi:type="xsd:string">123456</param0> </ns1:getTemp></SOAP-ENV:Body> </SOAP-ENV:Envelope> Dumping response headers: HTTP/1.1 200 OK Date: Wed, 05 Oct 2005 02:02:46 GMT Server: Enhydra-MultiServer/3.1.1b1 Status: 200 Content-Type: text/xml; charset=utf-8 Servlet-Engine: Enhydra Application Server/3.1.1b1 (JSP 1.1; Servlet 2.2; Java 1.4.2_03; Linux 2.4.7-10smp i386; java.vendor=Sun Microsystems Inc.) Content-Length: 470 Set-Cookie: JSESSIONID=RTiE9NZhFiqCdnPB36zgsXMi;Path=/soap X-Cache: MISS from www.xmethods.net Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Dumping response: <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns1:getTempResponse xmlns:ns1="urn:xmethods-Temperature-Demo" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:float">52.0</return> </ns1:getTempResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Output shows that:
Last update: 2007.
Table of Contents
Introduction to SOAP (Simple Object Access Protocol)
SOAP Message Transmission and Processing
SOAP Message Exchange Patterns
Perl SOAP::Lite - SOAP Server-Client Communication Module
Perl Socket Test Program for HTTP and SOAP
Perl SOAP::Lite for GetSpeech SOAP 1.1 Web Service
Perl SOAP::Lite 0.710 for SOAP 1.2 Web Services
Perl SOAP::Lite 0.710 for WSDL
►PHP SOAP Extension Client Programs
GetTemp.php - First Example with SOAP
PHP SOAP Extension Functions for Client Programs
GetTempDump.php - Dumping Debugging Information
Whis Is WSDL (Web Services Definition Language)?
►Using SOAP Extension in non-WDSL Mode
PHP SOAP Extension Server Programs
Java Socket and HttpURLConnection for SOAP
SAAJ - SOAP with Attachments API for Java
SoapUI - SOAP Web Service Testing Tool
WS-Security - SOAP Message Security Extension
WS-Security X.509 Certificate Token