Я создал одну веб-службу в php, которая возвращает мне данные в многомерном массиве, но проблема заключается в том, как ее использовать в .net. я знаю, чтобы использовать веб-службу, которые возвращают данные в одномерных массивах, но не знают о многомерном массиве, я включил ниже код, пожалуйста, помоги мнеКак использовать php webservice, которые возвращают многомерный массив в .net
стороны сервера PHP файл
<?php
require_once('lib/nusoap.php');
$server = new soap_server();
$server->configureWSDL('servCarRent', 'urn:servCarRent');
$server->wsdl->addComplexType('getAllKeyData','complexType','array','all','',
array(
'KeyId'=> array('name'=>'KeyId', 'type' =>'xsd:int'),
'KeyName'=> array('name'=>'KeyName', 'type' =>'xsd:string'),
'IsAvailable'=> array('name'=>'IsAvailable', 'type' =>'xsd:int'),
'NoOfKeys'=> array('name'=>'NoOfKeys', 'type' =>'xsd:int')
)
);
$server->wsdl->addComplexType(
'MySoapObjectArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:getAllKeyData[]')),
'tns:getAllKeyData'
);
$server->register(
'getAllKeys',
array(),
array('return'=>'tns:MySoapObjectArray'),
$ns,
false,
'rpc',
false,
'Processes an array of MySoapObjects and returns one of them');
function getAllKeys()
{
$con=mysql_connect('localhost','root','pass')or die("cannot connect");
mysql_select_db('mydb')or die("cannot select db");
$sql = 'Select * from KeyTable';
$result=mysql_query($sql,$con);
$out=array();
while($row = mysql_fetch_assoc($result))
{
$out[]=$row;
}
return $out;
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
exit();
?>
сторона клиента файл PHP
<?php
require_once('lib/nusoap.php');
$client = new nusoap_client('http://www.mydomainname.com/new/servCarRent.php?wsdl');
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
$response = $client->call('getAllKeys');
if($client->fault)
{
echo '<h2>Fault</h2><pre>';
echo '</pre>';
}
else
{
$err = $client->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
}
else
{
echo '<h2>Result</h2><pre>';
print_r($response);
echo '</pre>';
}
}
?>
если я бегу на стороне клиента файл, то я могу получить доступ к данным, как показано ниже
Result
Array
(
[0] => Array
(
[0] => 1
[1] => 20577369Y
[2] => 1
[3] => 2
)
[1] => Array
(
[0] => 2
[1] => 63337921S
[2] => 1
[3] => 2
)
)
, но я хочу, чтобы получить доступ к нему в .net, я включил веб-ссылку на мой проект .NET и назвал его webSerCarRent, я попробовал, как следующим образом, но дает мне ошибку в документе XML
webSerCarRent.servCarRent scr = new webSerCarRent.servCarRent();
webSerCarRent.getAllKeyData[] gakd = new webSerCarRent.getAllKeyData[10];
gakd = scr.getAllKeys();
for (int i = 0; i < gakd.Length; i++)
{
string kname = gakd[i].KeyName;
}
пожалуйста помогите мне