这两天一直在研究webservice soap是个什么东西,究竟怎么创建webservice,又如何用php调用webservice的借口,经过奋战,终于总算弄懂一点的。然后我做了一个webservice应用,然后使用php调用其借口,其功能只是简单的用户注册。

webservice究竟是个什么东东,自己百度吧。首先我来讲讲创建这个webservice的难点,难点就在于如何写出一个正确可用的WSDL文件,只要有了这个WSDL文件,那么其他的工作就一点都不新鲜了,就像你平时编程一样。

当你看看WSDL文件的时候,可能你头都大了,一大串代码,根本就不知道是什么。后来百度了一下,才知道这个东西只有牛人才可以写出来,我们这些一般的人物是可以用工具生成的,推荐zeng studio。我下的是7.1版的,发现和网上的教程根本不一样(他们可能使用的是旧版本),搞了半天都不知道在哪里生成WSDL文件,网上教程上说的大多数是使用export或者是tool,但你会发现较新版本的这两个都不管用。下面我就来演示一下如何生成这个WSDL文件。

首先,肯定是要创建PHP工程的。然后我们来创建webservice服务器端的文件,新建一个Class,代码如下:

Action.php<?php

class Action

{

private $username;

private $password;

private $email;

public function Register($username,$password,$email) {

$this->username=$username;

$this->password=$password;

$this->email=$email;

$conn=mysql_connect("localhost","root","");

if(!$conn) {

die("连接数据库失败".mysql.error());

}

mysql_select_db("android") or die("选择数据库有误".mysql_error());

$db_username=mysql_query("select * from users where username='$username'");

$num_username=mysql_num_rows($db_username);

$db_email=mysql_query("select * from users where email='$email'");

$num_email=mysql_num_rows($db_email);

if($num_username==0 && $num_email==0) {

mysql_query("insert into users (username,password,email) values ('$username','$password','$email')");

return true;

} else {

if($num_username!=0) {

echo "该用户已注册,请更改用户名重新注册";

return false;

}

if($num_email!=0) {

echo "该邮箱已注册,请更改邮箱重新注册";

return false;

}

}

}

}

接着是server文件:

server.php<?php

ini_set("soap.wsdl_cache_enabled", "0");

include "Action.php";

$Server=new SoapServer('soap.wsdl',array('soap_version' => SOAP_1_2)); //创建SoapServer对象

$Server->setClass("Action");

$Server->handle();

客户端测试文件

client.php<?php

ini_set("soap.wsdl_cache_enabled", "0");

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

$username="lvye";

$password="777777";

$email="lvye@qq.com";

$result=$client->Register("$username","$password","$email");

if($result) {

echo "注册成功!用户名为:{$username},密码为:{$password},邮箱为:{$email}";

} else echo "注册失败!";

下面我们就来生成WSDL文件了,new—>othor—>web service—>WSDL,这样就可以新建一个WSDL文件了,如图。

然后我们就来修改WSDL文件,zeng studio为我们提供了可视化的操作,当然如果你牛的话,你当然是可以改文件代码的,其实也就几个东西,弄懂了的话也不会太难。

本例中修改如下图所示:

做完这一步,这个WSDL文件就基本可用了,但又两个问题需要注意:

做到这一步,有可能会测试失败,可能会因为没有进行binding,这个东西有时是需要手动来完成的,在binding上右键选择Generate Binding Content就行了。

第二个要注意的是php的WSDL缓存,在做测试时,一般要将WSDL缓存关闭,否则你使用的有可能是原来的WSDL文件,而不是更新过的。关闭缓存有两种方法,第一种就是直接到php.ini中设置soap.wsdl_cache_enabled = 0;第二种就是在php文件中添加一条语句,ini_set("soap.wsdl_cache_enabled", "0");

做到这里,你就可以放心地测试,调用你的server程序了。顺便贴上WSDL的代码:

WSDL<?xml version="1.0" encoding="UTF-8"?>

php使用webservivce_使用zeng studio 创建的php调用webservice soap简单实例相关推荐

  1. C# 创建、部署和调用WebService的简单示例

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  2. C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  3. Android Studio创建项目

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Andr ...

  4. 解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题

    解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题 参考文章: (1)解决 Visual Studio 2017 RC 不兼容低 ...

  5. Xamarin XAML语言教程使用Xamarin Studio创建XAML(二)

    Xamarin XAML语言教程使用Xamarin Studio创建XAML(二) 使用Xamarin Studio创建XAML Xamarin Studio和Visual Studio创建XAML文 ...

  6. Xamarin XAML语言教程使用Visual Studio创建XAML

    Xamarin XAML语言教程使用Visual Studio创建XAML Xamarin.Forms允许开发人员通过XAML语法对程序的所有用户界面元素进行详细的定制,如文本.按钮.图像和列表框等. ...

  7. visual studio创建项目时需要注意的问题

    visual studio创建项目时需要注意的问题 Win32项目中,只能使用WinMain函数 . Win32控制台程序中只能使用main函数 .

  8. Xamarin 中Visual Studio创建项目提示错误

    Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...

  9. 使用Visual Studio 创建新的Web Part项目

    使用Visual Studio 创建新的Web Part项目 Web Part是你将为SharePoint创建的最常见的对象之一.它是平台构建的核心基块. 1. 管理员身份打开Visual Studi ...

最新文章

  1. java log4j 文件_java log4j 日志文件
  2. LA 4254 Processor 处理器 【二分 贪心 优先队列】
  3. VTK:可视化之BlobbyLogo
  4. python 论坛模板_python模板 - PH的个人空间 - OSCHINA - 中文开源技术交流社区
  5. java中日期加减计算(转)
  6. linux C/C++开发环境搭建指南
  7. 这是东西:jUnit:动态测试生成
  8. java 设置控制台标题_修改Tomcat控制台标题以及标题乱码处理
  9. c语言编程经典实例利润,C语言经典编程实例100题解答
  10. SPSS统计功能与模块对照表
  11. js统计字符串中特定字符出现的个数
  12. 调用登录_微信小程序登录那些事
  13. ACCESS数据库如何设置密码
  14. 钉钉小程序添加vant组件库
  15. html excel零不显示,Excel中把0显示为空白的三种解决方法
  16. 彻底删除aws亚马逊服务器使之不再计费
  17. 瑞萨开发记录01:点亮一颗LED灯(R5F104FEA芯片)
  18. EJB是个什么东东?
  19. 使用git控制word版本
  20. 计算机计算exp函数原理,exp函数表示什么意思(exp怎么按计算器)

热门文章

  1. 西工大18秋《C语言程序设计》平时作业,西工大18秋C语言程序设计平时作业答案...
  2. linux hadoop etc目录,Hadoop系列——Linux下Hadoop的安装与伪分布式配置
  3. db2报01650_db2错误代码
  4. 什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?
  5. C语言与汇编语言的区别
  6. python3 format函数_【Python3 第三日】%和format格式化输出 函数
  7. Idea代码统计工具
  8. python nan判断_Python数据分析:Numpy基本操作
  9. c语言 参数经过运算后还原为输入值,1:编程实现由键盘输入两个整数,将其赋给变量x和y并输出,交换x和y的值后再输出 用函数输出!...
  10. HDRP中ShaderGraph自发光的一个小坑