导航:首页 > 编程语言 > phprestwebservice

phprestwebservice

发布时间:2023-08-31 01:53:35

❶ 如何 调用 restful web services

RESTful WebService是比基于SOAP消息的WebService简单的多的一种轻量级Web服务,RESTful WebService是没有状态的,发布和调用都非常的轻松容易。

下面写一个最简单的Hello World例子,以便对RESTful WebService有个感性认识。因为非常专业理论化的描述RESTful WebService是一件理解起来很痛苦的事情。看看例子就知道个大概了,再看理论就容易理解多了。

/**
* RESTful WebService入门
* @author leimin 2009-11-18 16:42:43
*/
packageexample;

importcom.sun.jersey.api.container.httpserver.HttpServerFactory;
importcom.sun.net.httpserver.HttpServer;

importjavax.ws.rs.GET;
importjavax.ws.rs.Path;
importjavax.ws.rs.Proces;
importjava.io.IOException;

//指定URI
@Path("/helloworld")
publicclassHelloWorld {
//处理HTTP的GET请求
@GET
// 处理请求反馈的内容格式为"text/plain"
@Proces("text/plain")
publicString getClichedMessage() {
return"Hello World!";
}

publicstaticvoidmain(String[] args)throwsIOException {
//创建RESTful WebService服务
HttpServer server = HttpServerFactory.create("http://192.168.14.117:9999/");
//启动服务,这会导致新开一个线程
server.start();
//输出服务的一些提示信息到控制台
System.out.println("RESTful WebService服务已经启动");
System.out.println("服务访问地址: http://192.168.14.117:9999/helloworld");
}
}

运行这个类,控制台输入出:

2009-11-18 17:25:37 com.sun.jersey.api.core.ClasspathResourceConfig init
信息: Scanningforroot resource and provider classes in the paths:
D:jdk16jrelibalt-rt.jar
D:jdk16jrelibcharsets.jar
D:jdk16jrelibdeploy.jar
D:jdk16jrelibjavaws.jar
D:jdk16jrelibjce.jar
D:jdk16jrelibjsse.jar
D:jdk16jrelibmanagement-agent.jar
D:jdk16jrelibplugin.jar
D:jdk16jrelib esources.jar
D:jdk16jrelib t.jar
D:jdk16jrelibextdnsns.jar
D:jdk16jrelibextlocaledata.jar
D:jdk16jrelibextsunjce_provider.jar
D:jdk16jrelibextsunmscapi.jar
D:jdk16jrelibextsunpkcs11.jar
D: etwideo estwsoutproction estws
D:IDEA8libjavaee.jar
D: etwideo estwslibmail-1.4.jar
D: etwideo estwslibasm-3.1.jar
D: etwideo estwslibwadl2java.jar
D: etwideo estwslibjettison-1.0.1.jar
D: etwideo estwslibgrizzly-servlet-webserver-1.8.6.4.jar
D: etwideo estwslibwadl-core.jar
D: etwideo estwsliblocalizer.jar
D: etwideo estwslibjdom-1.0.jar
D: etwideo estwslibjsr311-api-1.0.jar
D: etwideo estwslibstax-api-1.0-2.jar
D: etwideo estwslibpersistence-api-1.0.2.jar
D: etwideo estwslibjaxb-api-2.1.jar
D: etwideo estwslibwadl-cmdline.jar
D: etwideo estwslibhttp-20070405.jar
D: etwideo estwslib ome-0.9.jar
D: etwideo estwslibactivation-1.1.jar
D: etwideo estwslibjaxb-impl-2.1.10.jar
D: etwideo estwslibjersey-bundle-1.0.3.jar
D: etwideo estwslibjackson-lgpl-0.9.4.jar
D: etwideo estwslibFastInfoset-1.2.2.jar
D: etwideo estwslibjaxb-xjc.jar
D:IDEA8libidea_rt.jar
2009-11-18 17:25:46 com.sun.jersey.api.core.ClasspathResourceConfig init
信息: Root resource classes found:
classexample.HelloWorld
2009-11-18 17:25:46 com.sun.jersey.api.core.ClasspathResourceConfig init
信息: Provider classes found:
RESTful WebService服务已经启动
服务访问地址:http://192.168.14.117:9999/helloworld

可见,服务启动成功了,下来就是从浏览器中访问服务了,输入http://192.168.14.117:9999/helloworld,将发送一个HTTP GET请求,看看结果:

测试成功了!

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画上勾

❸ REST webservice与普通的servlet有什么不同

一:Web Service基础知识
一个最简单web服务就一个web页面等待请求与处理。更容易理解的方式是Web
Service可以把一个应用变成一个基本WEB方式的请求与处理的应用。常见的两种
Web Service处理方式为:
a. 基于WSDL/SOAP的方式
b. Rest方式
方式a是比较正统的,客户端调用必须先取得WSDL文件,然后生成调用的API才可
以使用。它不是我要说的重点,基本调用流程如下:

方式b是Rest方式,Rest的Web Service的设计原则是基于CRUD,其支持四种操作分
别为:
GET – 获取信息/请求信息内容,绝大多数浏览器获取信息时使用该方式。
POST – 增加信息内容,显示以前的信息内容,可以看作是insert操作
PUT – 更新信息内容,相当与update
DELETE – 删除信息内容可以看作是delete

Rest方式更加简单便捷,如果从设计原则上看HTTP协议本身已经是最Restful风格的
协议了HTTP协议很好的支持了CRUD的操作。正是因为如此,WEB2.0以来, 基于
Restful的Web Service越来越多的成为首选。

二:认识RestfulStyle
Rest的全称是可表述状态迁移(RepresentationalState Transfer), 可能从字面看有点奇怪
HTTP协议本身无状态协议,其保持连接通过设置请求头字段Connection: keep-alive与
设置过期时间来同时控制。其实Rest方式的WebService也是无状态的这样做的好处最少
有以下两个:
1. 更好的负载平衡,减轻服务器端负担
2. 更快的客户端响应,减少不必要的状态检查。

Restful 风格的兴起,要感谢互联网巨头Google,Facebook等他们提供大量基于Restful
风格的web服务,从谷歌地图到天气预报到翻译,国内的互联网巨头腾讯,新浪微博也
发布自己的web服务,吸引更多的开发者加入他们的阵营。Rest除了满足基本的CRUD
设计原则之外,还要遵循如下约定:
1. 资源操作可以通过描述来实现即Representation
2. 消息本身是无状态与自我描述(传输支持XML与JSON)
3. 可以发送与接受多个Representation

Rest风格(Restful Style)架构原则:
1. 客户服务器方式
2. 无状态协议传输
3. 支持缓存
4. 统一接口定义
5. 分层系统设计
这样发布了Rest的Web服务API其改变不会影响到客户端程序与实现。如果你的系统
不能适用Rest风格的架构怎么办,重新设计一个新的架构,扩展Rest风格架构。但是
这个世界上绝大数的系统与应用要做的事情就是CRUD。

三. Rest与HTTP
上面已经提到过HTTP协议可能是最Rest风格的协议,而HTTP1.1协议设计的一个原则
就要实现Rest风格。所以毫无疑问HTTP的GET, POST, PUT, DELETE就是最好的证明
但是Rest风格是否可以应用到其它一些协议与系统设计中嘛,答案是肯定的,一个最好
的例子证明就POP3协议, POP3支持Fetch 数据记录,查询记录,更新记录与删除记录
(记录代表email)多么完美的Rest风格协议。

已经存在的HTTP协议应用:
1. 浏览器客户端(你天天上网,不是IE就是Chrome,或者其它浏览器,你懂的)
2. 即时消息通信,MSN/Skype支持
3. 各种内容管理系统
4. 博客系统与微博客户端应用。
5. 你可以来补充/?

Rest消息详解:
1. 跟我们现在知道的HTTP URI没有什么分别,Google静态地图就是一个很好的例子
只是URL加上不同参数就可以fetch不同的地图内容。
2. 可以支持任何类型的数据传输,这点与基于XML与JSON的信息传输有点同,后者
更希望传输文本内容与结构化文本内容
3. SOAP与XML-RPC有严格的消息格式限制,rest没有消息格式要求。客户端调用方
便啊!

Rest风格Web服务的好处,显然易见一个好处就是简化了客户端的调用,不再像WSDL
那般麻烦。从而减低第三方开发者的学习成本,减短了学习曲线。有利于服务推广与普
及,吸引更多用户数量从而带来潜在的商业利益。

在软件即服务(SaaS - Software As A Service)与软件即平台(PasS-Platform
As A Service)中有着重要的地位与应用。这正是那些互联网巨头对Rest风
格感兴趣的原因之一。

四:Rest风格架构
Rest风格可以用在非WEB的系统设计与架构中嘛/?打答案是肯定的,Rest可以用在任何
系统设计中,从本质是上Rest不是一种技术,而是一种架构原则,当然可以用来架构非
WEB的系统。系统越大风格越要象Rest方式如此才是一个成功的架构。

WEB中的面向对象编程
ExtJS, KendoUI(基于JQuery)等JavaScript库已经支持非常方便的从URL中fetch内容
更新数据,前端设计越来越趋向于更加细化的分层设计,而不仅仅是MVC。客户端
程序员应该更多的专注前台用户体验,由于这些框架良好的封装与可扩展行,
JavaScript等语言编程越来越多的引入面向对象的概念与实践。可以好不夸张的说如
今的JavaScript编程与十年之前已经有本质不同。

❹ PHP如何调用webservice

SOAP的WebService是可以直接使用的,php有支持SoapClient的,用起来很容易
<?php
$wsdl = "";
$client = new SoapClient($wsdl);
$param = array('arg0'=>'arg0','arg1'=>'arg1');
$ret = $client->getUserinfoByID($param);
if ($ret->return){
print_r($ret->return);
}else{
echo 'no user';
}
具体SoapClient需要php的soap支持,看phpinfo里有soap的话就可以了,比如这样:
soap
Soap Client enabled
Soap Server enabled

Directive Local Value Master Value
soap.wsdl_cache 1 1
soap.wsdl_cache_dir /tmp /tmp
soap.wsdl_cache_enabled 1 1
soap.wsdl_cache_limit 5 5
soap.wsdl_cache_ttl 86400 86400

❺ php连接webservice每次都要new SoapClient()吗

最近工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经包含了处理soap的模块,但是资料太少了,上php官网上查帮助,写的不是很容易理解,经过多次实践,终于搞清楚了,php调用web service还是非常简单的。下面用一个例子说明:
web service服务是查询QQ用户是否在线
使用php5开发客户端:
<?php
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_mp($client->__getFunctions());
print("");
var_mp($client->__getTypes());
print("");

class qqCheckOnline{
var $qqCode = "10000";
};
$arrPara = array(new qqCheckOnline);

$arrResult = $client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);

echo $arrResult->qqCheckOnlineResult . "";
} catch (SOAPFault $e) {
print $e;
}
?>
代码确实很简单吧,创建SoapClient对象时,可以使用保存在本地WSDL文件,也可以使用远程的地址,后面的array数组里可以带上很多的参数,具体参数可以查php的SoapClient帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。
调用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。
需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。如果参数要求是一个结构体,请用类代替,如上面的代码。
另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.

❻ php如何调用webservice的带两个参数的远程方法

这是给出来的说明
你请求这个地址就行了,在地址后加?WSDL
然后再请求web service里提供给你的方法,传进去需要的参数
方法的返回值就是你需要的数据
第一步:支持asp
win98要安装pws!但我们谈论的是如何使win2000支持!只要你在安装win2000的时候使用的是完全安装!那么iis就安装好了,有了iis就支持asp了!如果没有安装iis!那么请在控制面板里面点击“添加/删除程序”里面的”添加/删除组件“安装iis!

第二步:支持php
首先下载一个php解析软件!安装PHP。执行下载到硬盘里面的php-4.3.0-installer.exe 安
装提示,我们回车就可以。选择PHP路径,没有太大的影响的话,一般不要更改(默认c:\),填写邮件服务器,一般是LOCALHOST,还有发送的电子邮件信箱。

阅读全文

与phprestwebservice相关的资料

热点内容
什么app买品牌衣服 浏览:13
手机看世界名着哪个app好 浏览:493
运行命令切换打印机用户 浏览:919
android滑动button 浏览:939
服务器日志可以干什么 浏览:644
安卓系统空间怎么清理软件 浏览:343
维也纳pdf 浏览:641
加密货币交易所哪个最好 浏览:816
linux的现状 浏览:926
命令与征服叛逆者修改器 浏览:246
怎么用ios玩安卓全民枪战 浏览:668
程序员入行前后的头发 浏览:711
嵌入式图像算法 浏览:329
服务器如何访问服务器失败 浏览:875
android进度球 浏览:1001
Linux造成xfs文件夹 浏览:457
华为手机怎么修改wifi加密类型 浏览:250
服务器封口是什么意思 浏览:743
有限元分析是算法吗 浏览:901
空气压缩机性能曲线 浏览:22