首先新建一个项目

在项目中新建下面这些文件

php类文件 test.php

  1. <?php
  2. class test {
  3. public function __construct()
  4. {
  5. }
  6. public function add($name,$age)
  7. {
  8. $result = array('REV'=>false);
  9. $result['REV'] = true;
  10. $result['DATA'] = 1;
  11. $result = json_encode($result);
  12. return $result;
  13. }
  14. public function del($id)
  15. {
  16. $result = false;
  17. return $result;
  18. }
  19. public function getlist($type)
  20. {
  21. $result = array(
  22. array('name'=>'张三','age'=>18),
  23. array('name'=>'李四','age'=>20),
  24. array('name'=>'jms','age'=>10),
  25. array('name'=>'jk陈','age'=>8),
  26. );
  27. $result = json_encode($result);
  28. return $result;
  29. }
  30. }
  31.  
  32. ?>

使用zendstudio生成wsdl文件

 

生成的文件格式如下

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost/t/ws" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="test_server" targetNamespace="http://localhost/t/ws">
  3. <wsdl:types>
  4. <xsd:schema targetNamespace="http://localhost/t/ws">
  5. <xsd:element name="getlist">
  6. <xsd:complexType>
  7. <xsd:sequence>
  8. <xsd:element name="in" type="xsd:string"/>
  9. </xsd:sequence>
  10. </xsd:complexType>
  11. </xsd:element>
  12. <xsd:element name="getlistResponse">
  13. <xsd:complexType>
  14. <xsd:sequence>
  15. <xsd:element name="out" type="xsd:string"/>
  16. </xsd:sequence>
  17. </xsd:complexType>
  18. </xsd:element>
  19. </xsd:schema>
  20. </wsdl:types>
  21. <wsdl:message name="getlistRequest">
  22. <wsdl:part name="type" type="xsd:int"/>
  23. </wsdl:message>
  24. <wsdl:message name="getlistResponse">
  25. <wsdl:part name="resultRespose" type="xsd:string"/>
  26. </wsdl:message>
  27. <wsdl:portType name="test_server">
  28. <wsdl:operation name="getlist">
  29. <wsdl:input message="tns:getlistRequest"/>
  30. <wsdl:output message="tns:getlistResponse"/>
  31. </wsdl:operation>
  32. </wsdl:portType>
  33. <wsdl:binding name="test_serverSOAP" type="tns:test_server">
  34. <soap:binding style="document"
  35. transport="http://schemas.xmlsoap.org/soap/http" />
  36. <wsdl:operation name="getlist">
  37. <soap:operation
  38. soapAction="http://localhost/t/ws/NewOperation" />
  39. <wsdl:input>
  40. <soap:body use="literal" />
  41. </wsdl:input>
  42. <wsdl:output>
  43. <soap:body use="literal" />
  44. </wsdl:output>
  45. </wsdl:operation>
  46. </wsdl:binding>
  47. <wsdl:service name="test_server">
  48. <wsdl:port binding="tns:test_serverSOAP" name="test_serverSOAP">
  49. <soap:address location="http://localhost/t/ws/server.php"/>
  50. </wsdl:port>
  51. </wsdl:service>
  52. </wsdl:definitions>

调用server的文件 server.php

  1. <?php
  2. ini_set("soap.wsdl_cache_enabled", "0");  //测试时打开防止soap缓存
  3. include("test.php");
  4. $Server=new SoapServer('test_server.wsdl'); //SoapServer
  5. $Server->setClass("test");
  6. $Server->handle();
  7. ?>

测试调用webserver wsdl的文件

  1. <?php
  2. ini_set("soap.wsdl_cache_enabled", "0");
  3. //$url = 'http://localhost/t/ws/test_server.wsdl';
  4. $url = 'http://localhost/t/ws/server.php?wsdl'; //两种url都可以
  5. $client = new SoapClient($url);
  6. $params = array('type'=>1);
  7. $res = $client->__soapCall('getlist',array('parameters'=>$params));
  8. var_dump($res);
  9. ?>

返回数据:

  1. string(119) "[{"name":"\u5f20\u4e09","age":18},{"name":"\u674e\u56db","age":20},{"name":"jms","age":10},{"name":"jk\u9648","age":8}]"

调用成功

php 使用zendstudio 生成webservice文件 wsdl的更多相关文章

  1. C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用

    1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL.这个比较常见也很简单 即有完整的webservice文件目录如下图 ...

  2. 根据wsdl文件生成webservice 的.cs文件 及 生成dll C#调用

               Visual Studio 2013->Visual Studio Tools->VS2013 开发人员命令提示 命令行输入 wsdl E:\WS.wsdl /out ...

  3. C#根据WSDL文件生成WebService服务端代码

    转自:http://www.cnblogs.com/liyi93/archive/2012/01/30/2332320.html 虽然现在已经进入了.NET FrameWork 4.0的时代,WebS ...

  4. 根据wsdl文件,Java工程自动生成webservice客户端调用

    根据wsdl文件,Java工程自动生成webservice客户端调用 1,工具:带有webservice插件的myeclips 2,步骤: (1),新建一个Java工程:relationship (2 ...

  5. 根据wsdl文件,soupUI生成webservice客户端代码

    根据wsdl文件,soupUI生成webservice客户端代码 功能介绍: 对于面向WebServie接口开发时,当我们已经获取到WSDL文件后,可以使用soapUI工具生成对应的客户端和服务端代码 ...

  6. 根据wsdl文件,Web工程自动生成webservice客户端调用

    根据wsdl文件,Web工程自动生成webservice客户端调用 1,工具:带有webservice插件的eclips 2,步骤: (1),新建一个Web工程:WSDLTest (2),浏览器访问W ...

  7. 根据wsdl文件生成WebService客户端代码

    有时候在项目中,一个项目可能有好几个公司在做.系统之间难免会出现互相调用接口的现象,这时候有一种办法就是使用webService.本篇文章将介绍如何将对接系统提供的WebService接口,根据对方提 ...

  8. 解析利用wsdl.exe生成webservice代理类的详解

    利用wsdl.exe生成webservice代理类:根据提供的wsdl生成webservice代理类1.开始->程序->Visual Studio 2005 命令提示2.输入如下红色标记部 ...

  9. So easy Webservice 5.WSDL 文件说明

    WSDL – WebService Description Language – Web服务描述语言 通过XML形式说明服务在什么地方-地址. 通过XML形式说明服务提供什么样的方法 – 如何调用. ...

随机推荐

  1. Java程序员的日常—— 《编程思想》关于类的使用常识

    Java虽然利用JVM,让程序员可以放心大胆的使用,可是仍然会出现内存泄露等问题.世上没有绝对的银弹,因此也不能完全把所有的任务都交给JVM,了解Java中的初始化与垃圾回收还是必不可少的知识. 关于 ...

  2. paip.函数方法回调机制跟java php python c++的实现

    paip.函数方法回调机制跟java php python c++的实现 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...

  3. iOS开发——高级技术&地图功能的实现

    地图功能的实现 因为有个项目要在地图中显示位置,所以用到了MapKit. 记录下来,以免以后忘记. 加入MapKit library 首先得在项目中加入MapKit,如图 MapView 先增加一个V ...

  4. Leetcode 257 Binary Tree Paths 二叉树 DFS

    找到所有根到叶子的路径 深度优先搜索(DFS), 即二叉树的先序遍历. /** * Definition for a binary tree node. * struct TreeNode { * i ...

  5. Nginx缓存、压缩配置

    1.缓存配置 只需在http的server模块里配置即可,如: location ~.*\.(jpg|png|gif)$ { expires 30d; } location ~.*\.(css|js) ...

  6. android: SQLite 数据库的最佳实践

    6.5.1    使用事务 前面我们已经知道,SQLite 数据库是支持事务的,事务的特性可以保证让某一系列的操 作要么全部完成,要么一个都不会完成.那么在什么情况下才需要使用事务呢?想象以下场 景, ...

  7. 通过boundingRectWithSize:options:attributes:context:计算文本尺寸

    转:http://blog.csdn.net/iunion/article/details/12185077   之前用Text Kit写Reader的时候,在分页时要计算一段文本的尺寸大小,之前使用 ...

  8. 利用Mongodb的复制集搭建高可用分片,Replica Sets + Sharding的搭建过程

    参考资料 reference:  http://mongodb.blog.51cto.com/1071559/740131  http://docs.mongodb.org/manual/tutori ...

  9. 最近碰到了一个病毒木马:virus.win32.ramnit.B

    由于 使用了 简单游 平台上的挂机工具: 番茄-自动人机对战免费版1217  ,使用了很久,头段时间家里电脑 360提示有病毒,本来我一直忽略的,但 我扫描了一下,大量的这个木马,于是 吧 简单游卸载 ...

  10. 【micropython】用python来进行BadUSB的USB-HID测试(含无线控制)

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 本文以TPYBoardv101开发板为例讲解了利用micropython进行BadUSB的u ...