您好,登錄后才能下訂單哦!
這篇文章主要講解了“WCF REST服務是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“WCF REST服務是什么”吧!
.NET Framework 3.5引入了REST風格的Windows Communication Foundation(簡稱WCF)服務。除了開發和托管RESTful服務,還提供了多種選項來消費這些服務。WCF通過“web”綁定和允許發布RESTful服務的web編程模型提供對REST支持。RESTful服務返回普通的XML,JSON編碼,或者聚合種子(syndication feed)。網絡上有很多關于如何編寫這類服務的資源,可是對在.NET Framework中如何消費
WCF REST服務卻言之甚少。
在Simon Evan的文章“使用Silverlight 2.0消費服務”中,他指出目前不支持類似SOAP Web Service中那樣的自動生成代理:消費其它服務(例如REST)有一點難度,并且的確使我們驚奇的一件事是,目前還不能自動產生由 ASP.net AJAX(通過WebHttpBinding)使用的代理。你不得不手動構建一個URI字符串,在HTTP GET請求(REST)時使用WebClient類;對于其他HTTP動詞,使用HttpWebRequest類。如果這個服務使用了JSON編碼,解析響應可用這兩種方法中的任意一種:使用WCF的DataContractJSONSerializer(在概念上與XmlSerializer類似),或者使用LinqToJSON……
Json.NET(LinqToJSON)可以在Codeplex網站找到。作為.NET Framework 3.5組成部分, LINQ to XML可以方便地解析和消費XML數據。Pedram Rezaei解釋了如何為“來自Flickr的興趣列表操作”開發一個消費者。起初他采用了Simon Evan所說的三步走的方式:
◆制作HTTP請求,并將所有的參數組為URI的一部分包含進來
◆得到XML格式的響應
◆要么解析它,要么把它反序列化成一個對象
他采用了一種“WCF方式”,WCF REST服務包含如下步驟:
◆定義一個表示服務提供者的ServiceContract。
◆UriTemplate 包含了所有必要的參數,這些參數與其對應接口方法的參數列表完全一致。這個方法的簽名還定義了一個CLR返回類型,它從服務響應中反序列化出XML內容。這個方法必須被用WebGet或者WebInvoke屬性做注解;而且為了盡可能匹配服務返回的XML,ServiceContract必須被配置為使用 XmlSerializerFormat,而不是DataContractSerializer格式。
◆配置客戶端端點使用“webHttpBinding”。
◆為返回值和參數定義XML serializable類型。創建客戶端代理,創建方法:要么通過直接實例化ChannelFactory,要么由ClientBase繼承。
即便這是一個可行的方式,但Pedram批評說:我們并沒有使用WCF提供的統一編程模型,而且URL也是通過字符串連接搞出來的。響應也是被手工反序列化成一個對象的。使用WCF和WebHttpBinding我們可以將絕大部分的工作自動化。
欲知細節,請閱讀Pedram的文章。Mihailo Lalevic使用了相同的方式來為eBay API開發了一個消費者,同時提供了一個WPF示例應用(源碼)作為他文章的附件。
感謝各位的閱讀,以上就是“WCF REST服務是什么”的內容了,經過本文的學習后,相信大家對WCF REST服務是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。