php allxsd,在PHP中将多维数组传递给soap complexType

在尝试通过SOAP调用创建MailTicket函数时,遇到一个错误:在解析SOAP有效负载的XML时,第1行出现错误:格式不正确(无效令牌)。代码中定义了复杂的类型结构,并尝试将一个多维数组作为输入参数传递,但似乎在传递过程中遇到了问题。错误可能源于数组结构与预期的复杂类型不匹配或者XML编码问题。
摘要由CSDN通过智能技术生成

我从邮件服务器上发了一些电子邮件.有一个函数应该拉这些电子邮件并返回一个多维数组.我在客户端Web服务器中使用此数组来为我完成这项工作.我不知道如何将此数组传递给soap complexType.我写了以下代码:

$server->wsdl->addComplexType(

'MailTicket','complexType','struct','all','',array(

'attachment' => array('name' => 'attachment','type' => 'xsd:string'),'body' => array('name' => 'body','accountID' => array('name' => 'accountID','type' => 'xsd:string')

)

);

$server->wsdl->addComplexType(

'MailTicketReturn',array(

'Done' => array('name' => 'result','type' => 'xsd:string')

)

);

// Register the method to expose

$server->register('createMailTicket',// method name

array('mailTicketData' => 'tns:MailTicket'),// input parameters

array('return' => 'tns:MailTicketReturn'),// output parameters

'urn:eticketing',// namespace

'urn:eticketing#createMailTicket',// soapaction

'rpc',// style

'encoded',// use

'create a ticket by mail' // documentation

);

在客户端,我写道:

require_once('nusoap.PHP');

$wsdlURL="http://127.0.0.1/eticket/ETKWS.PHP?wsdl";

$client = new nusoap_client($wsdlURL,true);

$client->soap_defencoding = 'UTF-8';

$client->decode_utf8 = false;

$finalArray=Array

(

[attachment] => Array

(

[0] => Array

(

[0] => file1

[1] => file2

)

[1] => Array

(

[0] => file1x

)

)

[body]=>Array

(

[0] => some text

[1] => some other text

)

[accountID] => Array

(

[0] => 5464654

[1] => 4654664

)

)

if(is_array($finalArray)) // creat new tickets

{

$result=$client->call('createMailTicket',$finalArray);

}

$err = $client->getError();

if ($err) {

echo '

Constructor error

' . $err . '
';

echo '

Debug

' . htmlspecialchars($client->getDebug(),ENT_QUOTES) .       '
';

exit();

}

我收到了这个错误:

在第1行解析SOAP有效负载的XML错误:格式不正确(无效令牌)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值