我想在 php webservice 中使用 nusoap 将数据作为 xml 从客户端发送到服务器。我可以将它作为数组发送。这是我的代码。
客户
<?php
$name='admin';
$pass='admin';
if(isset($_POST['submit'])){
require_once('lib/nusoap.php');
$client = new nusoap_client('http://localhost/web_service/server.php?wsdl', true);
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
$result = $client->call('login', array('name' => $name,'pass'=>$pass));
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
$err = $client->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
}
?>
服务器
<?php
require_once('lib/nusoap.php');
$server = new soap_server();
$server->configureWSDL('server', 'urn:server');
$server->register('login',
array('name' => 'xsd:string','pass'=>'xsd:string'),
array('return' => 'xsd:string'),
'urn:server',
'urn:server#login',
'rpc',
'encoded',
'Login Authentication'
);
function login($name,$pass) {
if($name && $pass == 'admin'){
return 'Welcome, ' . $name;
}
else{
return '<h2>Oops,</h2> looks like something went wrong. Please try again';
}
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
我希望将变量 $name 和 $pass 作为 xml 发送到服务器,并且需要服务器解析 xml 并获取值。这可能吗。