2014-01-17 56 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服务实施的文档。

相关问题