當前位置:文思屋>社會工作>工作總結>

WCFREST工作總結範文

文思屋 人氣:1.7W

最近工作中學習使用了WCF REST,REST有很多好處高效簡約面向資源而客戶端呼叫也變得非常簡單。REST入門的資料等大家可以去網上找這裡主要分享下遇到的問題以及解決~

WCFREST工作總結範文

一.環境準備

使用WCF REST可以先下載一個模版並大致預覽

下載好這個模版後新建專案選擇這個模版會預設幫我們生成一個CRUD的程式碼新手朋友可以用這個快速熟悉下REST風格的WCF.

這這裡還給我們提供了一個很方便的功能help只需在我們的服務後面加上help就能顯示服務的詳情與介紹了

二.搭建REST WCF服務

1.介面的實現

當我們的請求為Get時一般用來獲取資料時使用[WebGet]而增加修改刪除則使用[WebInvoke]裡面的Method來決定使用POST或PUT等這裡要注意下

Method裡的一定要為大寫POST PUT等否則會出現HTTP錯誤405 405不允許此方法對於請求所標識的資源,不允許使用請求行中所指定的方法。

我們在這裡還可以通過ResponseFormat與RequestFormat來指定接受的引數與返回的引數格式

2.類繼承介面這裡先貼一部分最基礎的CRUD al裡註冊路由

用過mvc的朋友是不是發現這樣寫完後非常的像mvc呢~

三.實現呼叫服務

1.實現get服務

很簡單我們可以直接通過瀏覽器輸入即可獲得state為1的所有資料以json格式傳輸過來

rest風格的wcf使得我們不用再像以前一樣客戶端新增服務引用了沒有了wsdl簡潔了許多效率也提高了很多使得我們訪問更容易

REST由於沒有了代理而是傳送請求我們的客戶端可以是js訪問如果是jquery只需$即可傳送請求這裡我主要說下C#的訪問方式

通過WebClient方式這個類封裝的比較好呼叫起來簡單但由於封裝的過多實現一些功能時則不太容易

通過WebRequest方式這個則比較靈活

上面兩個是經常用到的兩個類這裡再推薦給大家一個是wcf工具裡的其中一個專門用來訪問rest服務也非常的簡單

通過HttpClient這個也是微軟開發的工具類而且在最新的 4.5裡集成了進去

通過上面三個任意其中一個就可以實現提交了

但是這裡有一個問題我們以前有代理類通過呼叫方法得到代理類可是現在呢我們沒有類我們得到的是一串json格式的資料我們怎麼把他變成像類一樣的方便操作呢?

比如A公司釋出了rest wcf服務資料格式json公司B要呼叫A公司的服務以前ws或wcf都有代理可以生成代理類現在卻得到的是json資料而我們還沒有要反序列化的實體類

比如我現在想把得到的資料像表格一樣的展示出來

有兩種方法

1.對照json資料客戶端新建個類然後通過反序列化把json反序列化為類物件

這樣比較麻煩類少還可以要是多了則需要新建很多實體類更關鍵的是服務端的`實體類更新了以前WCF或ws更新下服務即可而現在還要更新客戶端實體類豈不是很麻煩?

所以推薦用下面的方法

2.將json反序列話為dynamic型別

json轉換為dynamic型別起初我用的是第三方的經過嘗試發現再把json轉換為集合型別時總是出錯如果有朋友知道怎麼弄還望告知下。

後來經過嘗試我採用了微軟自帶的JavaScriptSerializer下面展示程式碼。

使用方法很簡單經過不論是序列化集合還是單個的都沒有問題這個時間也會正常顯示沒有問題~結果上面的程式碼就可以把接受的json型別展示為一個table了。

好了這個問題解決了可以上三種方式傳送get請求了這個畢竟簡單大家直接看程式碼。

可以看到第一個和第三個都是非常簡單的這裡要注意的是要注意編碼問題因為傳遞的有中文會有亂碼問題。

所以要注意編碼問題再第二個裡可以通過得到entType先得到編碼這樣就可以自動識別編碼格式了

再說下HttpClient這個真正傳送請求是在reStatusIsSuccessful這句話。

通過上面任意一種方法我們都可以得到json這樣再通過將json反序列話為dynamic型別就可以像有實體類一樣簡單的操作了~~

TAGS:範文 WCFREST