php中创建和调用webservice接口示例
php中创建和调用webservice接口示例
作为开发者来讲,要想写webservice接口或者调用别人的webservice接口,首先需要了解什么是webservice。简单说, WebService就是一些站点开放一些服务出来, 也可以是你自己开发的Service, 也就是一些方法, 通过URL,指定某一个方法名,发出请求,站点里的这个服务(方法),接到你的请求,根据传过来的参数,做一些处理,然后把处理后的结果以XML形式返回来给你,你的程序就解析这些XML数据,然后显示出来或做其它操作。
写webservice需要了解:基础的 Web Services 平台是 XML + HTTP;另外Web services 平台的元素:SOAP (简易对象访问协议),UDDI (通用描述、发现及整合),WSDL (Web services 描述语言);任何webservice都包括客户端和服务端。下面以实例讲解如何用php写webservice接口让别人调用:
首先需要建一个.wsdl文件,那么php如何建这个文件呢。有两种方式可以实现,一种是直接用zend studio工具生成;另一种就是php根据SoapDiscovery.class.php自动生成wsdl文件;具体哪一种根据自己情况选择,我一般用的是前者这样比较快速。下面写一下用类如何生成wsdl文件,首先需要上网上下载那个类文件,然后引入类文件后,看如下代码:
creat_wsdl.php
<?php
include_once('Service.php');
include_once('SoapDiscovery.class.php');
$wsdl=new SoapDiscovery('Service','soap');//第一参数为类名,也是生成wsdl的文件名Service.wsdl,第二个参数是服务的名字可以随便写
$wsdl->getWSDL();
?>
这样运行creat_wsdl.php文件就可以生成wsdl文件了。是不是很简单
任何一个webservice都需要和一个实现类绑定的。也就是说别人调用的wsdl文件其实真正其作用的就是实现类中的方法;如下代码为服务端类文件
<?php
class Service
{
public function Hello()
{
echo 'hello good';
}
public function Add($a,$b)
{
return $a+$b;
}
}
$server=SoapServer('Service.php',array('soap_version'=>soap_1_2));
$server->setClass('Service');//注册Service类的所有方法
$server->handle();//处理请求
?>
写好服务端和wsdl文件后那么就需要客户端调用了。请看客户端调用代码:
client.php
<?php
ini_set('soap.wsdl_cache_enabled','0');//关闭缓存
$soap=new SoapClient('http://127.0.0.1/soap/Service.php?wsdl');
echo $soap->Add(1,2);
//echo $soap->_soapCall('Add',array(1,2))//或者这样调用也可以
?>
这就是一个完整的写webservice接口和调用的实例代码,希望对需要的phper有所帮助;
那么调用别人的webservice接口就是client.php所写的代码这样调用。
php中创建和调用webservice接口示例的更多相关文章
- js调用Webservice接口案例
第一步:新建Webservice接口 主文件方法 using System;using System.Collections.Generic;using System.Web;using System ...
- SQL调用WebService接口
今天在做一个非常奇葩的东西.中间有个过程要在SQL触发器里面调用webservice接口.呵呵~ ALTER TRIGGER tgr_UpdateMemcached ON dbo.[User] AFT ...
- webservice接口示例(spring+xfire+webservice)
webservice接口示例(spring+xfire+webservice) CreateTime--2018年4月2日17:36:07 Author:Marydon 一.准备工作 1.1 ja ...
- PB11.5创建及调用WebService
我今天做了这个“PB创建及调用WebService”的小作业,下面我来分享一下我的整个实践过程以及我遇到的问题,希望对大家有所帮助,这个小作业是分以下三部来完成的: 一.构建WebService ①创 ...
- 动态调用WebService接口的几种方式
一.什么是WebService? 这里就不再赘述了,想要了解的====>传送门 二.为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过 ...
- 调用webservice接口,报错:(十六进制值0x01)是无效的字符
#事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符. 如图: 意思是webservice返回的信息中包含无效的字符,无法解析成xml: #分析 使用postman向we ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- 使用soapui调用webservice接口
soapui是专门模拟调用webservice接口的工具,下面介绍下怎么使用: 1.下载soapui并安装: 2.以免费天气获取接口为例:http://www.webservicex.net/glob ...
- 使用JS调用WebService接口
<script> $(document).ready(function () { var username = "admin"; var password = &quo ...
随机推荐
- Android Studio教程--Android项目分享到Github
首先下载安装git 下载地址:https://git-scm.com/ 打开AS,并设置如下: 到github上面注册一个帐号 运行--cmd cd C:\Program Files\Git\bin ...
- NSValue&NSNumber
void testForNSValue(void) { int i=10; // NSLog(@"encode(int)=%s",@encode(int)); // N ...
- 【代码笔记】iOS-饼图
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @class QuizChartView; @interf ...
- Xcode常见错误汇总
1.error: macro names must be identifiers YourProject_prefix.pch 原因: 因为你弄脏了预处理器宏,在它处于<Multiple Val ...
- UITextField 的限制输入金额(可为小数的正确金额)
要判断输入金额为正确金额的方法有两个,一个是用正则表达式,另一个就是用textfield的代理方法 有时候难免遇到这样的需求,不符合规则的金额就不让输入时,那用这种方法比较合理 如果设置输入键盘为De ...
- sql 2012 sequence 速记
CodeSELECT id INTO #t1 FROM sys_id WHERE id < 3 SELECT next value for sequencebase FROM #t1 DROP ...
- 直接双击启动tomcat中的startup.bat闪退原因及解决方法
免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...
- Xshell与securecrt之间不同
现在比较受欢迎的终端模拟器软件当属xshell和securecrt了,现在就客观的分析一下两款软件,以便更好选择. 一.功能对比1.1Xshell功能 支持布局切换 可调整执行顺序 提供多标签功能 对 ...
- ajax异步上传到又拍云的实例教程
作者:白狼 出处:www.manks.top/article/async_upload_to_upyun 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否 ...
- 【真的是随笔】如何利用htaccess把网站流量引到一个页面上(站点维护页效果)
咕咕咕,好久没来博客园转悠了,最近(这个最近好长啊)一直没时间写博(事实上也不知道写点什么有逼格的东西),所以一直都在潜水,,,(此处省略n字) 好了切入正题,关于如何把网站的所有流量引向一个页面的方 ...