fa_karoon
یک شنبه 29 دی 1392, 22:53 عصر
سلام دوستان، یه وب سرویس نوشتم با php و nusoap که یه آرایه ورودی می گیره و یه آرایه هم خروجی برمی گردونه. وقتی کلاینت رو به زبان php می نویسم هیچ مشکلی نداره و جواب می ده اما وقتی این وب سرویس رو add می کنم تو net. ورودی رو می گیره اما خروجی که می خواد برگردونه این خطا رو می ده : There is an error in XML document (1, 405).
کد سمت سرورم به این صورت هست ابتدا قسمت تعریف comlexType اش رو می ذارم بعد قسمت registerش و بعد هم خود تابع
require_once 'nusoap/nusoap.php';
$ns ="urn:mywsdl";
$server = new NuSOAP_Server();
$server->configureWSDL('MyWSDL', $ns);
$server->wsdl->addComplexType(
'ArrayOfstring',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array(
'ref' => 'SOAP-ENC:arrayType',
'wsdl:arrayType' =>'xsd:string[]'
)
)
);
$server->register(
'Query', // Method Name
array('user' => 'xsd:string','pass' => 'xsd:string','msgIds'=>'tns:ArrayOfstring'), //Input Parameters
array('return' => 'tns:ArrayOfstring'), // Output Parameters
$ns, // Namespace
$ns . '#Query', // SOAPAction
'rpc', // Style
'encoded', // Use
'Get specific user info' // Documentation
);
function Query($user,$pass,$msgIds)))
{
error_log("msgIds: ".$msgIds."");
error_log("1 : ".count($msgIds));
foreach ($msgIds as $item) {
error_log("123 : ". $item);
}
$result = array();
$result[0]=$msgIds[0]+1;
$result[1]=$msgIds[1]+1;
$result[2]=$msgIds[2]+1;
foreach ($result as $item) {
error_log("123 : ". $item);
}
return $result;
}
لطفا راهنمایی کنید که اشکال کار از کجاست؟
کد سمت سرورم به این صورت هست ابتدا قسمت تعریف comlexType اش رو می ذارم بعد قسمت registerش و بعد هم خود تابع
require_once 'nusoap/nusoap.php';
$ns ="urn:mywsdl";
$server = new NuSOAP_Server();
$server->configureWSDL('MyWSDL', $ns);
$server->wsdl->addComplexType(
'ArrayOfstring',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array(
'ref' => 'SOAP-ENC:arrayType',
'wsdl:arrayType' =>'xsd:string[]'
)
)
);
$server->register(
'Query', // Method Name
array('user' => 'xsd:string','pass' => 'xsd:string','msgIds'=>'tns:ArrayOfstring'), //Input Parameters
array('return' => 'tns:ArrayOfstring'), // Output Parameters
$ns, // Namespace
$ns . '#Query', // SOAPAction
'rpc', // Style
'encoded', // Use
'Get specific user info' // Documentation
);
function Query($user,$pass,$msgIds)))
{
error_log("msgIds: ".$msgIds."");
error_log("1 : ".count($msgIds));
foreach ($msgIds as $item) {
error_log("123 : ". $item);
}
$result = array();
$result[0]=$msgIds[0]+1;
$result[1]=$msgIds[1]+1;
$result[2]=$msgIds[2]+1;
foreach ($result as $item) {
error_log("123 : ". $item);
}
return $result;
}
لطفا راهنمایی کنید که اشکال کار از کجاست؟