php – 即使wsdl中的IP地址错误,为什么web服务返回数据?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 即使wsdl中的IP地址错误,为什么web服务返回数据?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一个 PHP文件充当web服务,并且有wsdl文件,其中有以下行:
<service name="ClientService">
    <documentation></documentation>
    <!-- partie 8 : Port -->
        <port name="ClientPort" binding="tyPEns:ClientBinding">
            <SOAp:address location="http://192.168.1.12/imfmobile/webservice/InterfacetransfererClient.PHP"/>
        </port>
</service>

问题是webservice和wsdl所在的计算机的IP地址是192.168.1.123,我从PHP Web服务调用函数获取数据!那么< soap:地址标签不是必需的吗?

简短回答:地址只是一个指示(对于生成代码和配置的开发人员或工具),可以访问服务的位置以及期望的URL类型.

答案很长:如果你看一下WSDL schema,你会发现port元素被定义为只包含一个名字和绑定属性,所以这就足够了.您的服务元素看起来像这样,它在技上是正确的:

<service name="ClientService">
   <port name="ClientPort" binding="typens:ClientBinding" />
</service>

但是port也被定义为一个可扩展元素,它允许将其他命名空间中的元素添加到它(例如< soap:address>).

通常(是的!)< soap:地址>应该说明实际服务所在的位置,但不幸的是,由于不同的因素,它并不总是如此:

>某些服务器地址已更改,人们忘记更新WSDL文件(对于contract first创建的WSDL);
> WSDL是由框架(contract last)@L_360_21@生成的,框架无法知道Web服务暴露在哪个外部地址,因此它添加了一些认地址和它知道的东西(如本地IP或机器名);
>你有一个中央WSDL,它描述了3个相同的部署服务(一个在DEV中,一个在UAT中,一个PROD中),你不能为所有3个服务添加一个地址;
>等等

WSDL主要用于生成客户端代码.完成后,您不再需要WSDL,只需要一个URL即可连接到已部署的Web服务.该地址作为工具添加一些认配置的提示,稍后您将替换为调用的REAL地址.

理想情况下,WSDL中的内容应该等于真实地址,但是这些信息通常会通过维护任务而落后,而事情最终会过时.您应该指定一个作为提示,即使它只是< soap:address location =“http://localhost/imfmobile/webservice/InterfaceTransfererClient.PHP”/>.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 即使wsdl中的IP地址错误,为什么web服务返回数据?全部内容,希望文章能够帮你解决php – 即使wsdl中的IP地址错误,为什么web服务返回数据?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。