soap请求与xml字符串参数

时间:2014-07-11 07:08:55

标签: php xml soap

可能很少有类似的博客,但我无法解决问题。我将xml转换为字符串并尝试将其作为参数传递。然后我收到了错误。我尝试使用cdata解决它,但它没有解决我的问题。最后我尝试使用SoapVar并获得以下错误

我的代码:

$survey =   $domtree->saveXML();    
$soapVar = new SoapVar($survey,XSD_ANYXML); 
$params = array(>        
    "ManagerID" => 0,
    "Reg_SalesCenterID" => $id,
    "surveys" => $soapVar,
    "SalesCenterList" => $SalesCenter);

try {
    $response = $soapClient->__soapCall('AddNewContact', array($params));
}catch (SoapFault $fault) {
    echo 'Request : <br/><xmp>',
    $soapClient->__getLastRequest(),
    '</xmp><br/><br/> Error Message : <br/>',
    $fault->getMessage();
}

错误

  

格式化程序在尝试反序列化时抛出异常   消息:反序列化操作的请求消息正文时出错   &#39; AddNewContactBestRent&#39 ;. XML之前不会出现任何字符   宣言。第2行,第1385位。

1 个答案:

答案 0 :(得分:0)

尝试

$response = $soapClient->__soapCall('AddNewContact', $params);

您将数组包装在一个数组中。因为$params var已经是一个数组。但你必须传递一个键=&gt;值数组,标量数据以SoapClient::__soapCall()方法作为第二个参数。

虽然这不能解决您的SoapVar问题。但是应该让SoapClient::__soapCall()方法调用工作。