永发信息网

php webservice是什么

答案:3  悬赏:40  手机版
解决时间 2021-03-24 04:36
php webservice是什么
最佳答案
一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。
所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。
其实可以从多个角度来理解WebService,从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
WebService平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,WebService平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。Web service平台必须提供一种标准来描述Web service,让客户可以得到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远程调用,这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。

至于php嘛, 就是一门动态的脚本语言, 无需和webservice画上勾
全部回答
webservice即WEB服务,是一个基于SOAP的规范。PHP WEBSERVICE 即是PHP语言实现的WEB服务。
soap 相比nusoap来说,优势之一是用c开发并编译成php内部函数库,而NuSOAP 完全由PHP语言编写,由一系列PHP 类组成。优势之二,nusoap是很早以前就有的,从2005-07-27 之后就停止更新了,而Soap在php5版本新增,随着php6对webservice的支持,我相信soap这个函数库的地位肯定会不断上升。

php5的Soap 函数库使用起来很方便,wsdl可以使用zend Development Environment 开发工具生成。
注意几点问题 :
1. 为了提高效率,php对 wsdl文件提供了缓存功能,开发的时候可以将使用ini_set("soap.wsdl_cache_enabled", 0); 让其失效,因为开发过程经常要修改wsdl文件;
2. SOAP(Simple Object Access Protocol) 简单对象访问协议,在php5不仅仅可以提供对象setClass给远程访问调用,还可以提供方法addFunctions。所以SOAP中的 'O' 已经被扩展了 。
3. 服务端有可能取不到客户端POST过来的数据,这可能是php5 soap functions的bugs;解决办法在下文的服务端举例程序中有一段代码:
if (isset($HTTP_RAW_POST_DATA)) {
$request = $HTTP_RAW_POST_DATA;
} else {
$request = file_get_contents('php://input');
}
下面是举例程序源代码。
soap客户端举例:
ini_set("soap.wsdl_cache_enabled", 0);
try{
$soap = new SoapClient('authenticate/idolol.wsdl');
$soap->get_avatar(230);
$functions = $soap->__getFunctions();
print_r($functions);
$types = $soap->__getTypes();
print_r($types);
}catch(SoapFault $fault){
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
?>
soap 服务端举例:
require './soap_functions.php';
ini_set("soap.wsdl_cache_enabled", 0);
$server = new SoapServer('authenticate/idolol.wsdl',array('encoding'=>'UTF-8'));
$server->addFunction(array("user_login","session_log","get_avatar","emergency"));
//$server->addFunction(SOAP_FUNCTIONS_ALL);
if (isset($HTTP_RAW_POST_DATA)) {
$request = $HTTP_RAW_POST_DATA;
} else {
$request = file_get_contents('php://input');
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$server->handle($request);

} else {

echo "This SOAP server can handle following functions: ";

$functions = $server->getFunctions();
foreach($functions as $k=>$func) {
echo $k.". ".$func . "\n";
}
}
?>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
只在乎你用英文怎么说,我真的很在乎你 用英语
铁路局主业辅业今后发展方向?
玩美时尚折扣店我想知道这个在什么地方
中国谁的二胡拉的最好呀
足弓处韧带拉伤怎么办?
内膜厚吃黄体酮停药后月经量增多怎么办
有四个数每次取三个数,算出它们的平均数再加
为什么刚种的韭菜很细呢有什么办法让它变粗
免职是什么处理
蜗牛尤碧雅是牌子吗
轩zone的耽美广播剧
初中抒情议论句子摘抄,抒情议论的段落摘抄并
友达とゲームをして游びます して为什么会出
以下哪部电影并非出自宫崎骏之手?
小学生必背70首古诗中描写秋天的诗有哪些?
推荐资讯
雅尚窗帘灯饰地址有知道的么?有点事想过去!
高中物理教师幽默语录,关于《爱心育人》斯霞
对女子祝福的古风词语,好朋友恋爱了,祝福的
临沂哪家婚纱摄影比较好,性价比合理点,后期
征集激励员工、企业文化和企业管理名言!
供电系统 sh201-c50na arvp 什么意思
如何将钢丝绳中抽出的单根钢丝拉直,要求很直
求助,iphone5S 充电出现这个问题是怎么回事
合同违约,可以要求退款吗
你好在吗,问个单片机和电调的接线问题
丹东二中作息时间
异议答辩需要准备什么材料?怎么操作?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?