[英]PHP Web Service NuSOAP complex type
我使用 NuSOAP 和客户端脚本编写了 php web 服务。 我用数组复杂类型返回一个复杂类型的数组,但它什么都不打印!!
服务器.php
<?php
// Pull in the NuSOAP code
require_once('nusoap-php5-0.9/lib/nusoap.php');
ini_set ('soap.wsdl_cache_enabled', 0);
// Create the server instance
$server = new soap_server();
// Initialize WSDL support
$server->configureWSDL('GetCus', 'urn:GetCus');
$server->wsdl->addComplexType(
'Product',
'complexType',
'struct',
'all',
'',
array(
'Name' => array('name'=>'name','type'=>'xsd:string'),
'Code' => array('name'=>'product_number','type'=>'xsd:string'),
'Price' => array('name'=>'price','type'=>'xsd:int'),
'Ammount' => array('name'=>'quantity','type'=>'xsd:int')
)
);
$server->wsdl->addComplexType(
'ProductArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Product[]')
),
'tns:Product'
);
// Register the method to expose
$server->register('GetProductsByCode', // method name
array(), // input parameters
array('return' => 'tns:ProductArray'), // output parameters tns:Customer
'urn:GetCus', // namespace
'urn:GetCus#GetProductsByCode', // soapaction
'rpc', // style
'encoded', // use
'Get Customer Information' // documentation
);
function GetProductsByCode()
{
$productArray=array();
for($i=0; $i<5 ; $i++)
{
$product=array('Name' => 'somthing'.$i,
'Code' => '23456yui'.$i,
'Price' => 222*($i+1),
'Ammount' => 5+$i
);
$productArray[]=$product;
}
return $productArray;
}
?>
server.php 返回产品数组
客户端.php
<?php
require_once('nusoap-php5-0.9/lib/nusoap.php');
ini_set ('soap.wsdl_cache_enabled', 0);
try{
$sClient = new nusoap_client('http://localhost/DataBaseTest/nusoap_server2.php?wsdl','wsdl','','','','');
$response = $sClient->call('GetProductsByCode',array(),'','', false,true);
print_r($response);
} catch(SoapFault $e){
var_dump($e);
}
?>
client.php 打印函数结果
请帮助我。 谢谢!
在这里,您的 WSDL 不起作用。 转到您的 ..../server.php?wsdl。 什么都没有显示。 使用$server->service(isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''); 在 php 结束标记 (?>) 之前。 那会做你的事情。 保存后运行你的客户端。 它将显示您的数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.