字体:  

关于web Service的问题,请各位前辈来指点迷津

sunnycoolboy85 发表于: 2008-7-23 16:18 来源: PHPChina 开源社区门户

最近的项目中需要用到web Service,了解了下这方面的知识:
php实现web Service有三种方式:nusoap,pear soap,php5内置soap。其中前两种都是php4中用的,nusoap经过测试php5中也能用,不过要改下类名。
已经简单测试过了nusoap和内置soap。

遇到的问题:
1.soap传输的是xml文件,请问如果php中如何对xml进行序列化,php的序列化函数serialize不能序列化xml。
2.如果传输的数据太大,需要通过压缩传输时,pear soap、nusoap和内置soap都是用的什么压缩方式,还是都没有压缩处理的方法。

国内关于php web Service的介绍太少了,本人英文又弱,看英文文档头大,请问各位有没有应用过soap的帮忙解答下小弟的疑问,不胜感激!

被版主移到了高级区,我等级太低居然都无法在高级区回复,只能编辑下顶楼.....
现在报道下最新进展:

1.至今未找到php下对xml序列化的方法,感谢leric的回帖,至于为啥要对xml还要序列化,我也不清楚,项目经理要求我查下,他说在java当中对xml序列化有多种方式。

2.关于压缩传输,没有找到nusoap和内置soap中有控制压缩的方式,但是在nusoap的源码中发现在send_response函数有gzencode处理,推测soap中在返回数据时会自动进行压缩,至于能不能选择不压缩和设定压缩等级还没有头绪(已在官方mailing lists里边询问了,暂时没有结果),所以对于soap的gzip压缩传输问题可以肯定的说肯定可以存在压缩传输,而且不是依靠apache,是调用php自己的gzencode方法(这里bs下gzdecode,手册里有列这个方法,但实际中没有,对gzencode方法压缩的东东需要自己写解码函数,很简单,去官网看看就知道怎么做了)。

3.关于zend framework的web Service方式,他没有用soap,用的是基于simpleXml的xmlrpc和rest,要想用soap还是得用那三种方式



谢谢bc1998的回帖,你发的地址处视频无法播放,能提供再具体一点的资料吗?


[ 本帖最后由 sunnycoolboy85 于 2008-7-28 10:21 编辑 ]

最新回复

sunnycoolboy85 at 2008-7-23 16:49:52
另外,还要请教下熟悉zend framework的高手,在zf中是怎样实现Web Service的
sunnycoolboy85 at 2008-7-23 17:40:27
都没有人理我,没人了解这块吗?还是我问的有问题?
马铃鼠 at 2008-7-23 17:43:16
我现在正在开发web services 但是资料少的可怜啊,一边摸索一边做。
苦啊
sunnycoolboy85 at 2008-7-23 18:01:19

QUOTE:

原帖由 马铃鼠 于 2008-7-23 17:43 发表
我现在正在开发web services 但是资料少的可怜啊,一边摸索一边做。
苦啊
是啊,国内的资料有够少的
专注 at 2008-7-23 18:57:13
lxylxy888666 at 2008-7-23 19:00:01
应该发在高级区的,,
蟋蟀 at 2008-7-23 19:04:20
为什么要序列化呢?web service通信使用xml格式数据传输,使用的是post模式。一般数据大的数据都可以传递的
要序列化可以使用json传递,对方使用json_decode
sunnycoolboy85 at 2008-7-24 10:16:33

QUOTE:

原帖由 lxylxy888666 于 2008-7-23 19:00 发表
应该发在高级区的,,
呵呵我也想发在高级区,但是没有权限......
sunnycoolboy85 at 2008-7-24 10:21:34

QUOTE:

原帖由 蟋蟀 于 2008-7-23 19:04 发表
为什么要序列化呢?web service通信使用xml格式数据传输,使用的是post模式。一般数据大的数据都可以传递的
要序列化可以使用json传递,对方使用json_decode
多谢版主的解答!
序列化是因为客户端不一定也是php的,怕会出问题,既然php不能序列化xml那就想别的办法,初步构想是找个c的序列化源码编译做php的扩展。
另外请问在web Service中怎么实现压缩传输呢,因为数据较大的话压缩传输比较好,xml浪费资源。
leric at 2008-7-25 13:11:23
什么叫序列化XML呢?XML已经是个字符串了,还想序列化成什么东西?
要压缩的话Web服务器可能会做这个事,不知现在的WS客户端都是怎么实现的,能不能认出压缩了的消息。
bc1998 at 2008-7-27 08:03:40
http://www.myued.com/?p=75
zend framework in web services
bc1998 at 2008-7-27 08:03:57
zend_soap有了