我正在使用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);
错误消失了。这是我的其他应用程序中的相同代码,并且从那里工作正常。
答案 0 :(得分:0)
经过长时间搜索这个问题的答案后,我终于找到了问题...这个代码实际上位于一个joomla组件上,我使用的uri与我从包含一个字符的位置所拥有的相同“ &安培;”这对xml标准是非法的,从我的xml中删除这些字符将导致SOAP服务器接受请求为有效。 :)