php使用webservivce_使用zeng studio 创建的php调用webservice soap简单实例
这两天一直在研究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简单实例相关推荐
- C# 创建、部署和调用WebService的简单示例
C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...
- C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi
C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...
- Android Studio创建项目
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Andr ...
- 解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题
解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题 参考文章: (1)解决 Visual Studio 2017 RC 不兼容低 ...
- Xamarin XAML语言教程使用Xamarin Studio创建XAML(二)
Xamarin XAML语言教程使用Xamarin Studio创建XAML(二) 使用Xamarin Studio创建XAML Xamarin Studio和Visual Studio创建XAML文 ...
- Xamarin XAML语言教程使用Visual Studio创建XAML
Xamarin XAML语言教程使用Visual Studio创建XAML Xamarin.Forms允许开发人员通过XAML语法对程序的所有用户界面元素进行详细的定制,如文本.按钮.图像和列表框等. ...
- visual studio创建项目时需要注意的问题
visual studio创建项目时需要注意的问题 Win32项目中,只能使用WinMain函数 . Win32控制台程序中只能使用main函数 .
- Xamarin 中Visual Studio创建项目提示错误
Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...
- 使用Visual Studio 创建新的Web Part项目
使用Visual Studio 创建新的Web Part项目 Web Part是你将为SharePoint创建的最常见的对象之一.它是平台构建的核心基块. 1. 管理员身份打开Visual Studi ...
最新文章
- java log4j 文件_java log4j 日志文件
- LA 4254 Processor 处理器 【二分 贪心 优先队列】
- VTK:可视化之BlobbyLogo
- python 论坛模板_python模板 - PH的个人空间 - OSCHINA - 中文开源技术交流社区
- java中日期加减计算(转)
- linux C/C++开发环境搭建指南
- 这是东西:jUnit:动态测试生成
- java 设置控制台标题_修改Tomcat控制台标题以及标题乱码处理
- c语言编程经典实例利润,C语言经典编程实例100题解答
- SPSS统计功能与模块对照表
- js统计字符串中特定字符出现的个数
- 调用登录_微信小程序登录那些事
- ACCESS数据库如何设置密码
- 钉钉小程序添加vant组件库
- html excel零不显示,Excel中把0显示为空白的三种解决方法
- 彻底删除aws亚马逊服务器使之不再计费
- 瑞萨开发记录01:点亮一颗LED灯(R5F104FEA芯片)
- EJB是个什么东东?
- 使用git控制word版本
- 计算机计算exp函数原理,exp函数表示什么意思(exp怎么按计算器)
热门文章
- 西工大18秋《C语言程序设计》平时作业,西工大18秋C语言程序设计平时作业答案...
- linux hadoop etc目录,Hadoop系列——Linux下Hadoop的安装与伪分布式配置
- db2报01650_db2错误代码
- 什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?
- C语言与汇编语言的区别
- python3 format函数_【Python3 第三日】%和format格式化输出 函数
- Idea代码统计工具
- python nan判断_Python数据分析:Numpy基本操作
- c语言 参数经过运算后还原为输入值,1:编程实现由键盘输入两个整数,将其赋给变量x和y并输出,交换x和y的值后再输出 用函数输出!...
- HDRP中ShaderGraph自发光的一个小坑