SOAP返回无效的XML响应

时间:2012-02-23 23:41:34

标签: php xml zend-framework soap

我正在使用Zend_Soap_Client对象向另一个应用程序发送soap请求,这是它发送到服务器的XML格式:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urllocation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:isAccountActive env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><param0 xsi:type="xsd:string">thisisatest</param0></ns1:isAccountActive></env:Body></env:Envelope>

我在我拥有的其他SOAP服务器上使用它并且似乎工作正常但是其中一个服务器返回了响应“无效的XML”这就是为什么我真的想知道为什么< em>它不能单独在该服务器上运行。任何想法都将不胜感激。

其他详细信息

我试图评论从服务器调用该方法的代码是代码:

$client = new Zend_Soap_Client(null,
            array(
                'uri'=>'http://'.$user->customconfigs['alumniuri'],
                'encoding'=>'UTF-8',
                'location'=>'http://'.$user->customconfigs['alumnilocation']
            )
        );
        echo "Location: {$user->customconfigs['alumnilocation']} - uri: {$user->customconfigs['alumniuri']}";
        $alumniactive = $client->isAccountActive($token);

评论时:

$alumniactive = $client->isAccountActive($token);

错误消失了。这是我的其他应用程序中的相同代码,并且从那里工作正常。

1 个答案:

答案 0 :(得分:0)

经过长时间搜索这个问题的答案后,我终于找到了问题...这个代码实际上位于一个joomla组件上,我使用的uri与我从包含一个字符的位置所拥有的相同“ &安培;”这对xml标准是非法的,从我的xml中删除这些字符将导致SOAP服务器接受请求为有效。 :)