一.开发环境:
1 WAMPserver PHP5.3 + apache + mysql的集成环境
2.Eclipse + PHP插件
3。python2.5和PHP5语言版本
二:开发代码
1.python 做一个服务端,发布为python web services.
代码如下:
import soaplib
import soaplib.core
from soaplib.core.service import rpc, DefinitionBase,soap
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array
class HelloWorldService(DefinitionBase):
@soap(String,_returns=String)
def say_hello(self,name):
results = "hello,"+name;
return results
if __name__=='__main__':
try:
from wsgiref.simple_server import make_server
soap_application = soaplib.core.Application([HelloWorldService], 'tns')
wsgi_application = wsgi.Application(soap_application)
server = make_server('10.21.237.120', 8010, wsgi_application)
print "8010........."
server.serve_forever()
except ImportError:
print "Error: example server code requires Python >= 2.5"
WSDL地址:http://10.21.237.120:8010/server?wsdl
2.PHP5作为php 客户端调用python web services
代码如下:
<?php
header("content-type:text/html;charset=utf-8");
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client = new SoapClient("http://10.21.237.120:8010/server?wsdl",array('encoding'=>'utf-8'));
// var_dump($client->__getFunctions());
// print("<br/>");
// var_dump($client->__getTypes());
// print("<br/>");
$parm1 = "KING";
$param = array('name' => $parm1);
$arr = $client->say_hello($param);
// print_r($arr);
$ar = get_object_vars($arr);
print("<br/>");
// print_r($ar);
print("<br/>");
echo $ar["say_helloResult"];
} catch (SOAPFault $e) {
print $e;
}
?>
三:soap环境的搭建
这个比较烦恼的事情,WAMP集成了PHP5自带了soap扩展,所谓的扩展就是有soap 的功能!!
python 端用的是soaplib,官方文档有点错误的,我的代码是根据官方代码修改了下!!
四:遇到问题怎么办
你可以邮件给我或者QQ1019990976,技术分享,广交天下好朋友。
我已经录制了视频。