SOAP Web Service Tutorials - Herong's Tutorial Examples - v5.13, by Herong Yang
HelloServer12.php - SOAP 1.2 Server Application
This section describes a tutorial example of a complete SOAP application with both server and client programs using SOAP 1.2.
So far, we have tried only with SOAP 1.1. Can we do some tests with SOAP 1.2? Sure. Here is my hello server modified for SOAP 1.2, HelloServer12.php:
<?php # HelloServer12.php # Copyright (c) 2007 HerongYang.com. All Rights Reserved. # function hello($someone) { return "Hello " . $someone . "! - SOAP 1.2"; } $server = new SoapServer(null, array( 'uri' => "urn://www.herong.home/res", 'soap_version' => SOAP_1_2)); $server->addFunction("hello"); $server->handle(); ?>
Here is my hello client modified for SOAP 1.2, HelloClient12.php:
<?php # HelloClient12.php # Copyright (c) 2009 HerongYang.com. All Rights Reserved. # $client = new SoapClient(null, array( 'location' => "http://localhost/HelloServer12.php", 'uri' => "urn://www.herong.home/req", 'soap_version' => SOAP_1_2, 'trace' => 1 )); $return = $client->__soapCall("hello",array("world")); 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()); ?>
Move HelloServer12.php to Apache document directory. Then run HelloClient12.php:
herong> php HelloClient12.php Returning value of __soapCall() call: Hello world! - SOAP 1.2 Dumping request headers: POST /HelloServer12.php HTTP/1.1 Host: localhost Connection: Keep-Alive User-Agent: PHP-SOAP/7.0.2 Content-Type: application/soap+xml; charset=utf-8; \ action="urn://www.herong.home/req#hello" Content-Length: 458 Dumping request: <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn://www.herong.home/req" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"> <env:Body> <ns1:hello env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <param0 xsi:type="xsd:string">world</param0> </ns1:hello> </env:Body> </env:Envelope> Dumping response headers: HTTP/1.1 200 OK Date: Sun, 02 Sep 2018 18:41:17 GMT Server: Apache/2.4.12 (Win32) PHP/7.0.2 X-Powered-By: PHP/7.0.2 Content-Length: 570 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: application/soap+xml; charset=utf-8 Dumping response: <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn://www.herong.home/res" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"> <env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"> <ns1:helloResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <rpc:result>return</rpc:result> <return xsi:type="xsd:string">Hello world! - SOAP 1.2</return> </ns1:helloResponse> </env:Body> </env:Envelope>
Now the output is more interesting:
Table of Contents
Introduction to SOAP (Simple Object Access Protocol)
SOAP Message Transmission and Processing
SOAP MEP (Message Exchange Patterns)
PHP SOAP Extension Client Programs
►PHP SOAP Extension Server Programs
PHP SOAP Extension Functions for Server Programs
HelloServer.php - First SOAP Server Application
►HelloServer12.php - SOAP 1.2 Server Application
HelloServerWsdl.php - SOAP 1.2 Server in WSDL Mode
HelloServerWsdl2.php - SOAP 1.1/1.2 Server in WSDL Mode
PHP SOAP Web Service Example - getTemp
Perl SOAP::Lite - SOAP Server-Client Communication Module
Perl Socket Test Program for HTTP and SOAP
Perl SOAP::Lite for NumberToWords SOAP 1.1 Web Service
Perl SOAP::Lite for SOAP 1.2 Web Services
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
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