【问题标题】:soap request with xml string parameter带有xml字符串参数的soap请求
【发布时间】:2014-07-11 15:16:06
【问题描述】:

可能很少有类似的博客,但我无法解决问题。我将 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();
}

错误

格式化程序在尝试反序列化 消息:反序列化操作请求消息正文时出错 'AddNewContactBestRent'。 XML 之前不能出现任何字符 宣言。第 2 行,位置 1385。

【问题讨论】:

  • 不,它没有解决我的问题。现在错误是“预期来自命名空间'schemas.xmlsoap.org/soap/envelope'的结束元素'Body'。从命名空间找到元素'param1'”

标签: php xml soap


【解决方案1】:

试试

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

您将一个数组包装在一个数组中。因为$params var 已经是一个数组。但是您必须将带有标量数据的 key => value 数组作为第二个参数传递给 SoapClient::__soapCall() 方法。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多