root/docs/usc/nautilus/usr2/prod/buoys/perl/xml/nusoap/samples/wsdlclient4.php

Revision 113 (checked in by jcothran, 5 years ago)

example php/perl script to process nerrs cdmo web service data to Xenia database.

Line 
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="&#160;Execute&#160;">';
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 ?>
177
Note: See TracBrowser for help on using the browser.