2014-01-17 55 views
0

我試圖使用PHP SOAP連接到WSDL Web服務。現在我需要從發送的XML中刪除SOAP元素。我現在擁有的是以下情況:如何從調用中刪除SOAP名稱空間

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns:ns1="http://service.com"> 
<SOAP-ENV:Body> 
    <ns1:Calculate> 
     //Content 
    </ns1:Calculate> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

我想是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<ns1:Calculate xmlns:ns1="http://service.com"> 
    //Content 
</ns1:Calculate> 

有沒有辦法做到這一點? SOAP是我需要發送這樣的請求的人嗎?

+0

您要創建的XML不是有效的soap請求xml。原來的一個是。您可以通過用'soapenv'替換'SOAP-ENV'來嘗試原始的xml。它在過去爲我工作。 –

+0

你能舉個例子嗎? – stixx

回答

-1

如果你想做一個SOAP請求,這些標籤是必需的。試圖提出請求的對面是否真的是SOAP服務器?

+0

不,它不是一個SOAP服務器,我猜它是一個IIS服務器。 Web服務不理解這些命名空間,所以我猜想我無法使用PHP soap。 – stixx

0

SOAP是協議,如果您想要SOAP請求,則客戶端和服務器端都必須接受並根據此協議發回請求。 只需要檢查這些設置:

$client = new SoapClient("some.wsdl", array('soap_version' => SOAP_1_2)); 

服務器可以使用1_2或1_1版本。 您應該聯繫Web服務提供商以獲取有關Web服務實施的文檔。

相關問題