導航:首頁 > 編程語言 > 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相關的資料

熱點內容
第二屆程序員節開幕式 瀏覽:82
運維程序員腳本 瀏覽:369
塑源碼燕窩的安全性 瀏覽:174
作業調度採用高響應比優先調度演算法 瀏覽:160
和平精英如何切換蘋果到安卓 瀏覽:530
資料庫調用表單的命令 瀏覽:920
程序員技能大賽 瀏覽:9
什麼app買品牌衣服 瀏覽:13
手機看世界名著哪個app好 瀏覽:493
運行命令切換列印機用戶 瀏覽:919
android滑動button 瀏覽:939
伺服器日誌可以干什麼 瀏覽:644
安卓系統空間怎麼清理軟體 瀏覽:343
維也納pdf 瀏覽:641
加密貨幣交易所哪個最好 瀏覽:816
linux的現狀 瀏覽:926
命令與征服叛逆者修改器 瀏覽:246
怎麼用ios玩安卓全民槍戰 瀏覽:668
程序員入行前後的頭發 瀏覽:711
嵌入式圖像演算法 瀏覽:329