可能很少有类似的博客,但我无法解决问题。我将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位。
答案 0 :(得分:0)
尝试
$response = $soapClient->__soapCall('AddNewContact', $params);
您将数组包装在一个数组中。因为$params
var已经是一个数组。但你必须传递一个键=&gt;值数组,标量数据以SoapClient::__soapCall()
方法作为第二个参数。
虽然这不能解决您的SoapVar
问题。但是应该让SoapClient::__soapCall()
方法调用工作。