Apache 2.2.32上的PHP 5.6.30
我正在尝试使用SoapClient进行调用。请求结构中的一个类具有许多属性,其中大多数必须以xsi:nil="true"
的形式发送。这是一个更简单的类
class myClass {
public $attribute1;
public $attribute2;
public $attribute3;
}
当我发送请求时,XML没有分配任何东西(或所有属性为null)生成如下(跳过soap-env等):
<ns1:class>
<ns1:attribute1 xsi:nil="true">
<ns1:attribute2 xsi:nil="true">
<ns1:attribute3 xsi:nil="true"></ns1:attribute3>
</ns1:attribute2>
</ns1:attribute1>
</ns1:class>
我期待的是
<ns1:class>
<ns1:attribute1 xsi:nil="true" />
<ns1:attribute2 xsi:nil="true" />
<ns1:attribute3 xsi:nil="true" />
</ns1:class>
如果我为一个值分配一个值,那么就会以这种方式生成XML:
<ns1:class>
<ns1:attribute1 xsi:nil="true">
<ns1:attribute2>my_value</ns1:attribute2>
<ns1:attribute3 xsi:nil="true"></ns1:attribute3>
</ns1:attribute1>
</ns1:class>
显然远程服务器不接受我的请求!
对这个问题的任何想法?
BTW我没有提供WSDL,因为我首先要求获得许可。
谢谢
答案 0 :(得分:0)
似乎这是一个非问题,在捕捉我的回复的同时,它被浏览器解释(尝试过Safari和FireFox),我不知道为什么会产生错误的显示。使用原始数据(即通过将其写入日志文件或类似的东西)得到了正确的输出而没有这种奇怪的行为。