資源描述:
《android網(wǎng)絡(luò)訪問和service組件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第13講網(wǎng)絡(luò)訪問3和Service組件本章學(xué)習(xí)目標(biāo):掌握android調(diào)用WebService掌握android中Socket編程掌握android中Service使用客戶端服務(wù)器響應(yīng)(response)請(qǐng)求(request)Web容器Servlet1Servlet2數(shù)據(jù)庫課程回顧未來人們?nèi)绾伍_發(fā)軟件?SaaS:SoftwareasaService(軟件即服務(wù))。將軟件視為一種基礎(chǔ)設(shè)施與服務(wù),像“自來水”一樣的東西。網(wǎng)絡(luò)無所不在,網(wǎng)絡(luò)可以看成是一個(gè)軟件服務(wù)的聚合體,是一個(gè)超級(jí)大“HUB”。開發(fā)軟件
2、就是“聚合服務(wù)”:大服務(wù)套小服務(wù),這一服務(wù)調(diào)用另一服務(wù),基于互聯(lián)網(wǎng)協(xié)同實(shí)現(xiàn)軟件功能。高度分布式、異構(gòu)和跨平臺(tái)。4SOASOA(ServiceOrientedArchitecture,面向服務(wù)的架構(gòu))。以服務(wù)作為軟件的基本構(gòu)造塊來“組裝”軟件。WebService是當(dāng)前最成熟的一種SOA技術(shù)。它將網(wǎng)站的功能封裝為可復(fù)用的軟件服務(wù),供其他Web應(yīng)用程序調(diào)用。5WebService的特點(diǎn)WebService可看成是一個(gè)可復(fù)用的Web應(yīng)用程序組件WebService是平臺(tái)無關(guān)的WebService是自說明
3、的可以使用一種統(tǒng)一的機(jī)制來在互聯(lián)網(wǎng)上查找WebService6WebService工作原理WebService駐留于WebServer中使用UDDI機(jī)制查找符合要求的WebService網(wǎng)絡(luò)中的機(jī)器通過SOAP協(xié)議進(jìn)行通訊7SOAP-概述SOAP(簡單對(duì)象訪問協(xié)議)是一種輕量級(jí)協(xié)議,用于在分散型、分布式環(huán)境中交換結(jié)構(gòu)化信息。SOAP利用XML技術(shù)定義一種可擴(kuò)展的消息處理框架,它提供了一種可通過多種底層協(xié)議進(jìn)行交換的消息結(jié)構(gòu)。這種框架的設(shè)計(jì)思想是要獨(dú)立于任何一種特定的編程模型和其他特定實(shí)現(xiàn)的語義在協(xié)
4、議棧中,SOAPXML位于用來發(fā)送消息的傳輸協(xié)議之上,而位于特定領(lǐng)域的XML文檔之下目前的版本是SOAP1.2SOAP例子SOAP消息SOAP元素是SOAP消息的根元素,包含一個(gè)可選的SOAPHeader和一個(gè)必需的SOAPBody元素可選的并且可擴(kuò)展的元素,用于描述元數(shù)據(jù)(metadata),比如安全性、事務(wù)處理和會(huì)話狀態(tài)信息必需的元素,包含發(fā)送者的XML文檔(文檔形式和RPC形式)在接收者(SOAP中介)返回的響應(yīng)信息中,可能包含
5、的元素,用來描述在閱讀SOAP消息時(shí)遇到的任何異常情況W3CNote指定了一種在SOAP消息中嵌入和描述附件(attachment,格式不限)的方式android調(diào)用WebService案例1手機(jī)號(hào)碼:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx天氣預(yù)報(bào):http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx調(diào)用android調(diào)用WebService案例1分析
6、—請(qǐng)求SOAPandroid調(diào)用WebService案例1分析—SOAP響應(yīng)android調(diào)用WebService案例1分析—實(shí)現(xiàn)android調(diào)用WebService案例1分析—請(qǐng)求android調(diào)用WebService案例1分析—讀取結(jié)果AndroidPull解析器讀取XMLPull解析器的運(yùn)行方式與SAX解析器相似。它提供了類似的事件,如:開始元素和結(jié)束元素事件,使用parser.next()可以進(jìn)入下一個(gè)元素并觸發(fā)相應(yīng)事件。事件將作為數(shù)值代碼被發(fā)送,因此可以使用一個(gè)switch對(duì)感興趣的
7、事件進(jìn)行處理。當(dāng)元素開始解析時(shí),調(diào)用parser.nextText()方法可以獲取下一個(gè)Text類型節(jié)點(diǎn)的值。Pull解析XML文件XmlPullParser的事件類型:START_DOCUMENTEND_DOCUMENTSTART_TAGEND_TAG方法parser.next()parser.nextText()getName();Pull解析XML文件-實(shí)例publicclassPullService{publicstaticListreadXML(InputStreamin
8、putStream)throwsIOException{XmlPullParserparser=Xml.newPullParser();try{parser.setInput(inputStream,"UTF-8");inteventType=parser.getEventType();PersoncurrentPerson=null;Listpersons=null;while(eventType!=XmlPullParser.END_DOCUMENT){swit