使用PHP SoapClient,尝试Chande XSD从http:// localhost到http://mysite.com
问题描述:
我想从WCF使用PHP SoapClient使用WSDL。如果使用下面的代码使用PHP SoapClient,尝试Chande XSD从http:// localhost到http://mysite.com
$client = new SoapClient('http://subdomain.xxxxxxx.com:7575/?WSDL');
我收到以下错误:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost:7575/?wsdl=wsdl0' : failed to load external entity "http://localhost:7575/?wsdl=wsdl0"
欲了解WSDL的WSDL是使用特定端口的服务配置文件,规定:
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:7574" />
<add baseAddress="http://localhost:7575" />
</baseAddresses>
</host>
问题是,WSDL重定向到http://localhost:7575
为wsdl = wsdl0文件...然后所有的XSD位置也列出http://localhost:7575....
是否有PHP肥皂函数,我可以用它来改变它到http://subdomain.xxxxxxx.com:7575/?wsdl=wsdl0
答
如果你有WCF服务的控制,它可能更容易配置它产生“扁平”的WSDL。这SO question & answer解释了如何将其配置为单个WSDL文档。
如果这是不可能的,也许你可以让他们(或可能由你本地)手动构建单个WSDL文档,并让他们将其托管在他们的站点上,以便您的PHP客户端可以按原样使用它。