Commit | Line | Data |
---|---|---|
1c21f490 MS |
1 | <?php |
2 | /* | |
3 | * $Id: wsdlclient4.php,v 1.6 2005/05/12 21:42:06 snichol Exp $ | |
4 | * | |
5 | * WSDL client sample, based on soap builders round 2 interop. | |
6 | * | |
7 | * Service: WSDL | |
8 | * Payload: rpc/encoded | |
9 | * Transport: http | |
10 | * Authentication: none | |
11 | */ | |
12 | require_once('../lib/nusoap.php'); | |
13 | /* | |
14 | * Grab post vars, if present | |
15 | */ | |
16 | $method = isset($_POST['method']) ? $_POST['method'] : ''; | |
17 | $null = isset($_POST['null']) ? $_POST['null'] : ''; | |
18 | $empty = isset($_POST['empty']) ? $_POST['empty'] : ''; | |
19 | $proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : ''; | |
20 | $proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : ''; | |
21 | $proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : ''; | |
22 | $proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : ''; | |
23 | /* | |
24 | * When no method has been specified, give the user a choice | |
25 | */ | |
26 | if ($method == '') { | |
27 | echo '<form name="MethodForm" method="POST">'; | |
28 | echo '<input type="hidden" name="proxyhost" value="' . $proxyhost .'">'; | |
29 | echo '<input type="hidden" name="proxyport" value="' . $proxyport .'">'; | |
30 | echo '<input type="hidden" name="proxyusername" value="' . $proxyusername .'">'; | |
31 | echo '<input type="hidden" name="proxypassword" value="' . $proxypassword .'">'; | |
32 | echo 'Method: <select name="method">'; | |
33 | echo '<option>echoString</option>'; | |
34 | echo '<option>echoStringArray</option>'; | |
35 | echo '<option>echoInteger</option>'; | |
36 | echo '<option>echoIntegerArray</option>'; | |
37 | echo '<option>echoFloat</option>'; | |
38 | echo '<option>echoFloatArray</option>'; | |
39 | echo '<option>echoStruct</option>'; | |
40 | echo '<option>echoStructArray</option>'; | |
41 | echo '<option>echoVoid</option>'; | |
42 | echo '<option>echoBoolean</option>'; | |
43 | echo '<option>echoBase64</option>'; | |
44 | echo '</select><br><br>'; | |
45 | echo 'Null parameter? <input type="checkbox" name="null" value="1"><br>'; | |
46 | echo 'Empty array? <input type="checkbox" name="empty" value="1"><br><br>'; | |
47 | echo '<input type="submit" value=" Execute ">'; | |
48 | echo '</form>'; | |
49 | exit(); | |
50 | } | |
51 | /* | |
52 | * Execute the specified method | |
53 | */ | |
54 | if ($method == 'echoString') { | |
55 | if ($null != '1') { | |
56 | $params = array('inputString' => 'If you cannot echo a string, you probably cannot do much'); | |
57 | } else { | |
58 | $params = array('inputString' => null); | |
59 | } | |
60 | } elseif ($method == 'echoStringArray') { | |
61 | if ($null != '1') { | |
62 | if ($empty != '1') { | |
63 | $params = array('inputStringArray' => array('String 1', 'String 2', 'String Three')); | |
64 | } else { | |
65 | $params = array('inputStringArray' => array()); | |
66 | } | |
67 | } else { | |
68 | $params = array('inputStringArray' => null); | |
69 | } | |
70 | } elseif ($method == 'echoInteger') { | |
71 | if ($null != '1') { | |
72 | $params = array('inputInteger' => 329); | |
73 | } else { | |
74 | $params = array('inputInteger' => null); | |
75 | } | |
76 | } elseif ($method == 'echoIntegerArray') { | |
77 | if ($null != '1') { | |
78 | if ($empty != '1') { | |
79 | $params = array('inputIntegerArray' => array(451, 43, -392220011, 1, 1, 2, 3, 5, 8, 13, 21)); | |
80 | } else { | |
81 | $params = array('inputIntegerArray' => array()); | |
82 | } | |
83 | } else { | |
84 | $params = array('inputIntegerArray' => null); | |
85 | } | |
86 | } elseif ($method == 'echoFloat') { | |
87 | if ($null != '1') { | |
88 | $params = array('inputFloat' => 3.14159265); | |
89 | } else { | |
90 | $params = array('inputFloat' => null); | |
91 | } | |
92 | } elseif ($method == 'echoFloatArray') { | |
93 | if ($null != '1') { | |
94 | if ($empty != '1') { | |
95 | $params = array('inputFloatArray' => array(1.1, 2.2, 3.3, 1/4, -1/9)); | |
96 | } else { | |
97 | $params = array('inputFloatArray' => array()); | |
98 | } | |
99 | } else { | |
100 | $params = array('inputFloatArray' => null); | |
101 | } | |
102 | } elseif ($method == 'echoStruct') { | |
103 | if ($null != '1') { | |
104 | $struct = array('varString' => 'who', 'varInt' => 2, 'varFloat' => 3.14159); | |
105 | $params = array('inputStruct' => $struct); | |
106 | } else { | |
107 | $params = array('inputStruct' => null); | |
108 | } | |
109 | } elseif ($method == 'echoStructArray') { | |
110 | if ($null != '1') { | |
111 | if ($empty != '1') { | |
112 | $structs[] = array('varString' => 'who', 'varInt' => 2, 'varFloat' => 3.14159); | |
113 | $structs[] = array('varString' => 'when', 'varInt' => 4, 'varFloat' => 99.9876); | |
114 | $params = array('inputStructArray' => $structs); | |
115 | } else { | |
116 | $params = array('inputStructArray' => array()); | |
117 | } | |
118 | } else { | |
119 | $params = array('inputStructArray' => null); | |
120 | } | |
121 | } elseif ($method == 'echoVoid') { | |
122 | $params = array(); | |
123 | } elseif ($method == 'echoBoolean') { | |
124 | if ($null != '1') { | |
125 | $params = array('inputBoolean' => false); | |
126 | } else { | |
127 | $params = array('inputBoolean' => null); | |
128 | } | |
129 | } elseif ($method == 'echoBase64') { | |
130 | if ($null != '1') { | |
131 | $params = array('inputBase64' => base64_encode('You must encode the data you send; NuSOAP will automatically decode the data it receives')); | |
132 | } else { | |
133 | $params = array('inputBase64' => null); | |
134 | } | |
135 | } else { | |
136 | echo 'Sorry, I do not know about method ' . $method; | |
137 | exit(); | |
138 | } | |
139 | $client = new soapclient('http://www.scottnichol.com/samples/round2_base_server.php?wsdl&debug=1', true, | |
140 | $proxyhost, $proxyport, $proxyusername, $proxypassword); | |
141 | $err = $client->getError(); | |
142 | if ($err) { | |
143 | echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; | |
144 | } | |
145 | $client->useHTTPPersistentConnection(); | |
146 | echo '<h2>Execute ' . $method . '</h2>'; | |
147 | $result = $client->call($method, $params); | |
148 | // Check for a fault | |
149 | if ($client->fault) { | |
150 | echo '<h2>Fault</h2><pre>'; | |
151 | print_r($result); | |
152 | echo '</pre>'; | |
153 | } else { | |
154 | // Check for errors | |
155 | $err = $client->getError(); | |
156 | if ($err) { | |
157 | // Display the error | |
158 | echo '<h2>Error</h2><pre>' . $err . '</pre>'; | |
159 | } else { | |
160 | // Display the result | |
161 | echo '<h2>Result</h2><pre>'; | |
162 | print_r((!is_bool($result)) ? $result : ($result ? 'true' : 'false')); | |
163 | echo '</pre>'; | |
164 | // And execute again to test persistent connection | |
165 | echo '<h2>Execute ' . $method . ' again to test persistent connection (see debug)</h2>'; | |
166 | $client->debug("*** execute again to test persistent connection ***"); | |
167 | $result = $client->call($method, $params); | |
168 | // And again... | |
169 | $client->debug("*** execute again ... ***"); | |
170 | $result = $client->call($method, $params); | |
171 | } | |
172 | } | |
173 | echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; | |
174 | echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; | |
175 | echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>'; | |
176 | ?> |