亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于WCF的REST風格服務與Android跨平臺數(shù)據(jù)通信

        2016-11-19 18:52:01韓豐羽
        中國科技縱橫 2016年4期

        韓豐羽

        【摘 要】為實現(xiàn)Android和.NET平臺的跨平臺的數(shù)據(jù)傳輸方式,本文運用了REST風格的WCF服務框架,并將WCF托管在IIS上,同時在Android客戶端上使用HttpClient,通過唯一標識符調用相對應的服務方法。經(jīng)過多次實驗表明,運用這種方式進行數(shù)據(jù)通信,可以減輕服務器的負擔,降低與服務端通信的難度,且使程序更加可維護。

        【關鍵詞】WCF RESTful Android 數(shù)據(jù)交互

        1 WCF平臺概述

        Windows Communication Foundation(WCF)是使用托管代碼建立和運行面向服務的應用程序框架,主要是用來做松耦合的分布式通訊,它提供的包括托管、安全、異步等豐富功能使得開發(fā)者能夠建立一個跨平臺、可信賴、服務實例實力管理、事務管理的解決方案,且融合了.Net 平臺下多種和分布式系統(tǒng)有關的技術:

        (1)WSE(2)Net Remoting(3)ASMX(4)MSMQ。

        1.1 WCF要素

        地址:服務托管地址,每個服務都具有唯一地址,用來指定服務所在位置和傳輸協(xié)議,以供其它服務和客戶端通過地址來對服務進行訪問。每一個服務的地址由一個統(tǒng)一資源標示符(URI)來表示。

        契約:用來描述服務功能,屬于服務公開接口的一部分。契約分為:

        (1)服務契約:定義了客戶端調用時所執(zhí)行的服務執(zhí)操作;

        (2)數(shù)據(jù)契約:定義了數(shù)據(jù)類型;

        (3)消息契約:直接對soap頭和soap體進行交互和控制。

        綁定:它封裝了傳輸協(xié)議、消息編碼、安全傳遞、通信模式等一組綁定元素組成的通信基礎結構。綁定可以加速開發(fā)過程,且充分利用內置的各種特性。

        宿主:WCF服務需要承載在一個宿主上。WCF提供了多種宿主形式,包括自寄宿、IIS寄宿、Windows服務、Com+組件等。本文采用的是IIS寄宿。

        1.2 REST風格

        REST(Representational State Transfer)是一種輕量級的Web Service架構風格,對比SOAP和WSDL等復雜接口,其實現(xiàn)和操作明顯更為簡潔,且降低了開發(fā)的復雜性。

        REST架構風格遵循了CRUD原則,即只需要四種行為:Create(創(chuàng)建)、Read(讀?。pdate(更新)和Delete(刪除)就可以完成對資源的操作和處理,它并不關心消息的定義與方法的設計。本文中選定HTTP/HTTPS協(xié)議作為REST這種框架風格的統(tǒng)一的網(wǎng)絡通信協(xié)議,REST充分的利用了HTTP協(xié)議提供的四中方法,其中:

        (1)創(chuàng)建資源在服務器上,使用POST方法;

        (2)查找某個資源,使用GET方法;

        (3)更改資源狀態(tài)或對其更新,使用PUT方法;

        (4)刪除某個資源,使用DELETE方法。

        REST支持HTML、XML、JSON等多種格式,本文采取的是JSON格式。

        2 WCF服務端開發(fā)

        服務端通過提供服務的訪問點,使客戶端可以調用其服務。本文中REST風格的WCF服務端與客戶端之間的耦合度更低,服務端僅在收到客戶端請求使才有響應,平時完全不關心客戶端狀態(tài),減輕了服務端的負擔,使其只保留資源狀態(tài)信息和提供給客戶端的接口功能。

        2.1 創(chuàng)建WCF服務應用程序

        在新建了一個WCF服務應用程序后,添加自定義的WCF服務文件WcfTest.svc,此時vs2012會自動生成接口文件IWcfTest.cs。接口文件如下:

        要在WCF中創(chuàng)建REST風格的應用程序就必須用到System.ServiceModel.Web.dll組件。服務方法中[WebInvoke]特性是REST的重要元素,其屬性用于修改或刪除數(shù)據(jù)的操作,例如上述程序中UriTemplate屬性使URI定義了一個自定義資源,客戶端通過UriTemplate定義的資源名來訪問該服務;對于ResponseFormat,RequestFormat屬性是用于定義對服務操作發(fā)出的請求和響應格式,本文采用的是JSON格式。服務文件中就定義著接口的具體實現(xiàn),再次不在累述。

        需注意的一點是,本文是搭建一個REST風格的WCF服務應用程序,所以需要設置綁定為webHttpBinding,它是REST風格綁定,具體設置步驟:

        (1)在解決方案框內找到Web.config;

        (2)右擊后找到WCF配置選項,選擇新建服務;

        (3)在bin文件夾里找到對應的動態(tài)鏈接庫,選擇并找到對應服務類型;

        (4)設置服務終結點,找到Binding項,改為webHttpBinding。

        2.2 IIS宿主

        僅開發(fā)了自己的服務并不可以讓外部客戶端調用,還需要一個宿主進程來承載這些服務,WCF的托管服務包括:自托管和IIS托管。本文使用IIS托管,其優(yōu)點是可實現(xiàn)程序隔離,管理程序的生命周期。雖限制只能使用HTTP/HTTPS協(xié)議,但本文采取webHttpBinding綁定,限制協(xié)議類型也就不是缺點了。

        首先在服務器上添加一個網(wǎng)站。由于.NET framework4.0才支持REST風格,所以要將新添加網(wǎng)站的.NET framework版本改為v4.0。

        接下來再次“重新生成解決方案”,右擊工程選擇“發(fā)布”選項,彈出web發(fā)布對話框。填寫信息后點擊“驗證連接”,當出現(xiàn)綠色對號時說明連接成功。這時點擊發(fā)布,整個WCF就發(fā)布到服務器的IIS上了。具體內容如下圖2-1。

        由于IIS服務器默認是不支持PUT和DELETE操作,返回“403-Forbidden”錯誤,因此需要修改IIS新建網(wǎng)站的屬性設置為全部動作。最后檢驗是否發(fā)布成功,在IIS管理器中找到新建好的網(wǎng)站,點擊瀏覽網(wǎng)站,當出現(xiàn)下圖2-2時,證明發(fā)布成功了。

        3 Android客戶端開發(fā)

        在REST風格下,Android客戶端只要通過資源的URI就可以輕松的訪問服務,實現(xiàn)與服務的交互。相比于傳統(tǒng)JDK自帶的HttpURLConnection,本文運用的HttpClient更簡單易用,靈活方便。

        3.1 HttpClient介紹

        HttpClient封裝了訪問http的請求頭,參數(shù),內容體,響應等等。具體步驟:

        (1)首先創(chuàng)建HttpClient對象。本文采用創(chuàng)建POST請求方法HttpPost實例,并指定請求URL;

        (2)接下來對HttpPost對象調用setHeader()方法設置HTTP協(xié)議的消息頭和交互信息的類型,同時規(guī)定setEntity()方法來設置請求參數(shù);

        (3)調用HttpClient對象的execute()發(fā)送請求,該方法返回一個HttpResponse;

        (4)調用返回的HttpResponse的getEntity()方法可獲取HttpEntity對象,該對象包裝了服務器的響應內容。

        3.2創(chuàng)建Android應用程序

        在了解HttpClient的操作方法后,我們知道它是和HTTP/HTTPS協(xié)議進行交互,那么一定要設定Android的網(wǎng)絡訪問權限:

        其次由于客戶端與服務端的數(shù)據(jù)交互是一個很費時的過程,為避免出現(xiàn)界面卡頓導致降低用戶體驗的問題,Android2.3開始要求網(wǎng)絡通信操作時要放在一個單獨的線程中,因此我們要把調用服務的過程放在子線程里面,具體過程如下:

        4結語

        本文詳述了REST風格的WCF與Android客戶端進行信息交互的方式,通過以上方法可以實現(xiàn)跨平臺通信。REST風格使客戶端在訪問服務方法時不用關心服務端業(yè)務方法的復雜性。并且因為WCF的成熟性,使實現(xiàn)跨平臺通信的方法跟簡單易用,安全性高,健壯性強。

        參考文獻:

        [1]袁贊.Java與RESTful Web Service[J].電腦知識與技術 學術交流,2007.

        [2]趙海寧,李洋.基于WCF框架的應用與研究[J].電腦知識與技術,2010 .

        [3]朱夏,王茜.異構系統(tǒng)間數(shù)據(jù)交互模型的設計與實現(xiàn)[J].東南大學學報 自然科學版,2006 36(2):226-227.

        [4]Pablo Cibraro,Kurt Claeys,F(xiàn)abio Cozzolino,Johann Grabner Professional WCF 4[M] Wiley 2010.05.28.

        久久青青草原国产精品最新片| 国产av夜夜欢一区二区三区| 午夜福利院电影| 国产在线一区观看| 在线观看中文字幕一区二区三区| 日本中文字幕精品久久| 99在线精品视频在线观看| 久久久久亚洲av无码专区桃色| 欧美日韩综合在线视频免费看 | 96精品在线| 久久99热精品免费观看麻豆| 开心久久婷婷综合中文字幕| 亚洲精品一品区二品区三品区| 亚洲丁香五月激情综合| 在线你懂| 亚洲成人精品久久久国产精品 | 少妇人妻偷人精品视频| 一区二区三区国产在线网站视频| 国产免费精品一品二区三| 在线无码中文字幕一区| 九月婷婷人人澡人人添人人爽| 日本理论片一区二区三区| 国产女主播福利在线观看| 成人网站在线进入爽爽爽| 最新亚洲精品国偷自产在线| 在线亚洲AV不卡一区二区 | 亚洲aⅴ在线无码播放毛片一线天 中国国语毛片免费观看视频 | 影视先锋av资源噜噜| 欧美成人精品福利在线视频| 91国产自拍精品视频| 国产三级av在线播放| 亚洲色欲在线播放一区| 亚洲中文字幕熟女五十| 日本精品一区二区三区二人码 | 999zyz玖玖资源站永久| 搡老熟女老女人一区二区| 国产福利美女小视频| 中国男男女在线免费av| 久久99精品九九九久久婷婷| 亚洲熟妇网| 快射视频网站在线观看|