[英]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.