如何从 SoapClient 中的信封中删除属性
How to remove attribute from envelope in SoapClient
尝试使用PHP-s自己的SoapClient,但遇到了障碍。
我正在使用 __soapCall 发出请求,但查询失败,因为设置了 encodingStyle 属性:
$client = new SoapClient(NULL, array(
'location' => 'http://myUri.com',
'uri' => 'http://namespace.com/producer'
));
$result = $client->__soapCall('GET_ALL');
现在做 $client->__getLastRequest();像这样显示 Envolope 节点:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
如何删除 SOAP-ENV:encodingStyle 属性并仍然使用 __soapCall(); ?
显然我在 SoapClient 构造中缺少 "use" 参数。解决方案:
$client = new SoapClient(NULL, array(
'location' => 'http://myUri.com',
'uri' => 'http://namespace.com/producer',
'use' => SOAP_LITERAL,
));
尝试使用PHP-s自己的SoapClient,但遇到了障碍。
我正在使用 __soapCall 发出请求,但查询失败,因为设置了 encodingStyle 属性:
$client = new SoapClient(NULL, array(
'location' => 'http://myUri.com',
'uri' => 'http://namespace.com/producer'
));
$result = $client->__soapCall('GET_ALL');
现在做 $client->__getLastRequest();像这样显示 Envolope 节点:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
如何删除 SOAP-ENV:encodingStyle 属性并仍然使用 __soapCall(); ?
显然我在 SoapClient 构造中缺少 "use" 参数。解决方案:
$client = new SoapClient(NULL, array(
'location' => 'http://myUri.com',
'uri' => 'http://namespace.com/producer',
'use' => SOAP_LITERAL,
));