2017-01-16 20 views
0

嘗試使用PHP自己的SoapClient,但遇到了障礙。如何從SoapClient的信封中刪除屬性

我使用__soapCall製作的請求,但查詢失敗,因爲encodingStyle屬性被設置:

$client = new SoapClient(NULL, array(
    'location' => 'http://myUri.com', 
    'uri' => 'http://namespace.com/producer' 
)); 

$result = $client->__soapCall('GET_ALL'); 

現在做$客戶 - > __ 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(); ?

回答

0

Apperantly我是在缺少SoapClient的「使用」參數構造。解決方案:

$client = new SoapClient(NULL, array(
    'location' => 'http://myUri.com', 
    'uri' => 'http://namespace.com/producer', 
    'use' => SOAP_LITERAL, 
));