WSDL Tutorials - Herong's Tutorial Examples - v2.22, by Herong Yang
encodingStyle="uri" Required for rpc/encoded
This section provides a tutorial example on how to write a PHP program to call an RPC method based Web service using the SoapClient class. The Web service WSDL document has encodingStyle='uri' included.
To finish testing SoapClient class with RPC method based Web services, I wrote another SoapClient program with another Web service, GetStockPrice_WSDL_11_SOAP_11_RPC.wsdl, which has the encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" included.
Here is the example PHP program, GetStockPrice_Client.php:
<?php
# GetStockPrice_Client.php
# Copyright (c) 2007 HerongYang.com. All Rights Reserved.
#
#- Loading the WSDL document
$server = "https://www.herongyang.com/Service/";
$wsdl = $server . "GetStockPrice_WSDL_11_SOAP_11_RPC.wsdl";
$client = new SoapClient($wsdl,
array('trace' => TRUE));
#- Calling the RPC method
$result = $client->GetStockPrice('GOOG', 'NASDAQ', '2007-07-07');
#- Showing the result
print "Stock price is: $result\n";
#- Showing the request and response
print $client->__getLastRequest()."\n";
print $client->__getLastResponse()."\n";
?>
Notice that: array('trace' => TRUE) is added as an option to allow me to use __getLastRequest() and __getLastResponse() methods.
Execution result of this example is presented below:
herong> \local\php\php GetStockPrice_Client.php
Stock price is: 552.16
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
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>
<SOAP-ENV:GetStockPrice>
<stockPart xsi:type="xsd:string">GOOG</stockPart>
<marketPart xsi:type="xsd:string">NASDAQ</marketPart>
<datePart xsi:type="xsd:date">2007-07-07</datePart>
</SOAP-ENV:GetStockPrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<soapenv:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:hy="https://www.herongyang.com/Service/">
<soapenv:Header/>
<soapenv:Body>
<hy:GetStockPriceResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<pricePart xsi:type="xsd:decimal">552.16</pricePart>
</hy:GetStockPriceResponse>
</soapenv:Body>
</soapenv:Envelope>
Notice that:
Table of Contents
WSDL 2.0 Document Structure and Syntax
WSDL Version 2.0 Part 2: Adjuncts
WSDL 2.0 Document Examples with SOAP Binding
Using WSDL Document in Java Apache Axis2/Java for WSDL
Apache Woden for WSDL Documents in Java
SoapUI - Web Service Testing Tool
WSDL 1.1 Document Structure and Syntax
WSDL 1.1 Binding Extension for SOAP 1.1
SoapUI as WSDL 1.1 Testing Tool
WSDL 1.1 and SOAP 1.1 Examples - Document and RPC Styles
►PHP SOAP Extension for WSDL 1.1
Testing SOAP Extension with WSDL 1.1
Methods on the SoapClient Class
Calling an RPC Method Based Web Service
►encodingStyle="uri" Required for rpc/encoded
SoapParam Constructor - Creating Named Parameters
SoapVar Constructor - Creating Encoded Values
XSD_ANYXML Encoding - Building SOAP Body Element
Calling an XML Document Based Web Service
Apache Axis2/Java for WSDL 1.1
Using WSDL2Java to Generate Web Service Stub Classes
WSDL 1.1 Binding Extension for SOAP 1.2
WSDL 1.1 and SOAP 1.2 Examples - Document and RPC Styles