SOAP __getLastRequest输出htmlentities编码的XML

时间:2014-04-18 18:14:22

标签: php xml soap

当我在soap请求之后调用__getLastRequest时,我正在输出htmlentities编码XML的SOAP请求。

__getLastRequest如下所示:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://autotask.net/ATWS/v1_5/"><SOAP-ENV:Body><ns1:query><ns1:sXML>
&lt;queryxml&gt;
&lt;entity&gt;UserDefinedFieldDefinition&lt;/entity&gt;
&lt;query&gt;
&lt;field&gt;id&lt;expression op="greaterthan"&gt;0&lt;/expression&gt;&lt;/field&gt;
&lt;/query&gt;
&lt;/queryxml&gt;
</ns1:sXML></ns1:query></SOAP-ENV:Body></SOAP-ENV:Envelope>

最奇怪的是,SOAP请求在很大程度上都有效。有些时候它不起作用,所以在调试这个看似断断续续的问题时,我发现了关于__getLastRequest的这个非常奇怪的问题。

代码很简单:

return $this->__soapCall('query', 
        array($parameters),       
        array(
                'uri' => 'http://autotask.net/ATWS/v1_5/',
                'soapaction' => ''
        )
);

参数如下所示:

(
    [sXML] => 

                <queryxml>
                <entity>UserDefinedFieldDefinition</entity>
                <query>
                <field>id<expression op="greaterthan">0</expression></field>
                </query>
                </queryxml>

)

__ getLastResponse似乎返回了伪造的xml。

我觉得__soapCall是间歇性地对$参数进行htmlen编码,或者至少__getLastResponse在被返回之前被错误编码。我倾向于后者,因为大部分请求都有效。有时他们不这样做。从数据的角度来看,请求永远不会改变。

以前有没有人见过这个问题?

提前谢谢你。

0 个答案:

没有答案