主题:实战WebService II: SOAP篇(基于php)
http://www.javaeye.com/topic/152042 ? 概述(SOAP和XML-PRC比较)?
MISC1.6的业务订购关系同步的响应包:?
实战SOAPI? 现在做SOAP开发一般有三种方式选择? ??? * PEAR自带的soap扩展,? ??? * PHP自带的SOAP扩展,? ??? * NuSOAP(纯PHP,似乎已经过时)? 注:还有WSO2.org(关于WSO2.org可以考虑尝试一下)? PHP 5 中新增了内置的 SOAP 扩展,我们称之为 ext/soap。它是作为 PHP 的一部分提供的,因此不需要下载、安装和管理单独的包。这是第一个用 C 而不是 PHP 为 PHP 编写的 SOAP 实现,因此作者声称它的速度要快得多。? 因为新的扩展是 PHP 的完整组成部分之一,相关文档包含在 PHP 手册的 Function Reference 部分(php_soap.dll)。? SOAP 参考是以一个重要的免责声明开始的:? 警告:该扩展是试验性的(EXPERIMENTAL)。本扩展的行为,包括关于本扩展的函数名和其他内容,在以后的 PHP 版本中随时可能改变,不另行通知。使用该扩展的风险自负。? 警告看起来有点让人担心,但实际上这个扩展似乎得到了很好的支持。和任何新代码一样,该扩展也存在缺陷,但是报告的问题通常很快就能得到修正。在 PHP 站点上可以看到缺陷列表。我们估计,在将来的 PHP 版本中,该扩展将从试验性功能转为主流功能? 一个访问.NET WEB服务的客户端例子?
运行后输出?
在实验的过程当中,使用了一个抓包工具Wireshark来分析报文。Wireshark很不错,在Filter处设置ip.addr == 208.109.78.12(208.109.78.12 是 www.webservicemart.com 的IP),然后启动监控,可以分析上述调用过程中HTTP包是什么样的。? 实战SOAPII? 用PHP建立SOAP服务? 建立soap_server.php(虚拟路径为:http://172.16.0.24/php/soap/soap_server.php)?
注意几点:?
??? 用PHP客户端访问刚建立SOAP服务?
本质上,http://localhost/php/soap/soap_server.php?WSDL就是要访问到注释行所指的wsdl描述文件,所以这个WSDL文件必须事先生成。而对于其他语言如Java则可以动态生成。我目前的学习发现对于php自带的SOAP扩展要求这个WSDL文件必须事先生成好。? 可以用ZendStudio生成静态的WSDL文件,此时用到math类的phpdoc作为生成WSDL的元数据。 用ZendStudio生成wsdl文件时,必须正确说明web服务目标地址,片断如下:?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |