搜索
首页php教程php手册在PHP中利用wsdl创建标准webservice

在PHP中利用wsdl创建标准webservice

Jun 13, 2016 am 10:46 AM
pphpwebservice创建使用标准说明

 

说明:

•         非标准的webservice,可能只能PHP才能访问

•         标准的webservice,就必须要使用wsdl

在这里我只介绍标准的webservice www.2cto.com

一、 创建WSDL

1。网上下载SoapDiscovery.class.php类

2。修改SoapDiscovery.class.php的公共方法getWsdl(),让其自动生成wsdl文件(注意存放路径),这里只是创建一个wsdl模型

1 //return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '');

2         //生成wsdl文件,将上面的return注释

3         $fso = fopen($this->class_name . ".wsdl" , "w");

4         fwrite($fso, sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ''));

5         exit;

3。提供服务的类或者函数

 1 //比如我有个类:person,文件名为:person.class.php★,里面有两个方法,一个是say,一个是run。很简单。

 2    

 3     class person

 4     {

 5         public function say()

 6         {

 7             return("i'm speaking.");

 8         }

 9         public function run()

10         {

11             return("i'm running,don't disturb me please.");

12         }

13     }

14     ?>

4。开始正式生成wsdl:

    创建文件server.php。将以下内容拷贝进去,运行即可生成一个person.wsdl文件

1

2     include("person.class.php");

3     include("SoapDiscovery.class.php");

4     //第一个参数是类名(生成的wsdl文件就是以它来命名的),即person类,第二个参数是服务的名字(这个可以随便写)。

5     $disco = new SoapDiscovery('person','Person');

6     $disco->getWSDL();

7     ?>

5。创建webservice服务端程序

    将server.php文件的内容清空,复制以下代码进去:

1  

2     include("person.class.php");

3     $objSoapServer = new SoapServer("person.wsdl");//person.wsdl是刚创建的wsdl文件

4     //$objSoapServer = new SoapServer("server.php?wsdl");//这样也行

5     $objSoapServer->setClass("person");//注册person类的所有方法

6     $objSoapServer->handle();//处理请求

7     ?>

6。创建webservice客户端程序,测试webservice是否有效,文件名是:client.php

 

    $client = new SoapClient("person.wsdl");

    //$client = new SoapClient("server.php?wsdl");//这样也行

    echo($client->say());

    echo "
";

    echo($client->run());

    echo "
";

    ?>

7。.NET如果要使用的话,你只要提供一个url给他就行了。

获得url的方法:你可以先到person.wsdl文件里面查找

,这里的url(具体url是根据你的目录确定的)就是你要提供给.NET开发人员使用的。不过别高兴太早,后面要加:“?wsdl”,http://xxxxxxxxxxxxxxxxxxxx/server.php?wsdl这样才是对的,不信你可以将url拷贝到浏览器的地址栏里看下就知道了。

.NET开发人员获得你给他的url之后,就可以在自己的项目里面添加一个服务引用或者web引用了,然后就可以根据提示完成相关操作,对于使用.NET的开发人员来说很简单的。

(1)创建一网站,创建一个web引用,输入url

(2)实力调用

protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack) {

            sdaf.Solsoft_HelloWorld ddd = new sdaf.Solsoft_HelloWorld();

            Label1.Text = ddd.say();

        }

    }

附件下载:http://www.BkJia.com/uploadfile/2011/1208/20111208050034814.rar

 

 2011-12-07  21:37:56

作者 暗淡

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。