我使用NuSOAP和客户端脚本编写了php服务。我使用数组复杂类型来返回一个复杂类型的数组,但是它是没有打印的!
server.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返回乘积数组
client.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打印函数结果
请帮帮我。谢谢!
发布于 2013-01-04 03:23:20
在这里,您的WSDL无法工作。转到您的./server.php?wsdl。什么都没有显示出来。使用$server->service(isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:‘’;在php结束标记(?>)之前使用。那样你就可以了。救了你的客户就行。它将显示您的数组。
https://stackoverflow.com/questions/14001916
复制相似问题