我對WCF並不熟悉,但我想我會在嘗試使用現有服務時學習。從WCF消費REST服務
我想到的其中一個REST API是Twitter API。我想開發一個WPF客戶端,它只會向某個Twitter用戶輸出最後5條推文。
我想知道是否有人可以簡單地概述一下我需要在Visual Studio中使用這些服務,使用WCF(類,嚮導,代理等)。我已經知道如何使用web調用它們請求並解析返回的XML - 我真的很想看到WCF部分在工作。
在此先感謝anyoine誰幫助留學深造:)
我對WCF並不熟悉,但我想我會在嘗試使用現有服務時學習。從WCF消費REST服務
我想到的其中一個REST API是Twitter API。我想開發一個WPF客戶端,它只會向某個Twitter用戶輸出最後5條推文。
我想知道是否有人可以簡單地概述一下我需要在Visual Studio中使用這些服務,使用WCF(類,嚮導,代理等)。我已經知道如何使用web調用它們請求並解析返回的XML - 我真的很想看到WCF部分在工作。
在此先感謝anyoine誰幫助留學深造:)
退房Kirk Evans Creating a REST Twitter Client With WCF。 .NET 3.5 SP1中對WCF的最新改進使許多RESTful接口更容易。
還可以從MSDN站點查看Twitter WCF 3.5 API Declaration Library。
這裏的yet another example - 警告爲2/3/10鏈接的是「borked」
還有就是使用WCF消耗像Twitter的API基於HTTP API沒有任何好處。 System.Net.HttpWebRequest是綽綽有餘的。事實上,我懷疑你會有一些困難。當線路兩端都有WCF時,WCF更容易工作。
但是,如果REST API返回Atom內容,則可以使用System.ServiceModel.Syndication類來幫助解析響應。
編輯: 自從我寫這篇文章後,微軟發佈了一個新的HTTP客戶端庫的預覽版,它可以更好地使用RESTful服務。
這裏是你將如何使用它來張貼到Twitter:
var client = new HttpClient();
client.DefaultHeaders.Authorization = Credential.CreateBasic("username","password");
var form = new HttpUrlEncodedForm();
form.Add("status","Test tweet using Microsoft.Http.HttpClient");
var content = HttpContent.Create(form);
var resp = client.Post("http://www.twitter.com/statuses/update.xml", content);
如果你想在這個客戶端庫的更多詳細信息,我在寫一些博客文章關於它here的過程。
而你,先生,贏得「最大錯誤」獎。創建DataContracts來表示遠程數據,並讓各種.NET序列化程序處理骯髒的工作是一個巨大的勝利 – TheSoftwareJedi 2008-11-08 01:16:15
如果教育的目的,考慮WCF可能不是最合適的框架,以消耗REST API。 正確的工具,您可能在這裏拿起大錘,當你需要的只是一把螺絲刀... 如果你想要一個建議,請閱讀達雷爾的答案。 – 2010-01-24 11:17:28
...如果您需要更多示例來說明如何爲非WCF服務定義WCF合同是一件痛苦的事情,請參閱http://stackoverflow.com/questions/2180676/readasdatacontract-exception-while-reading-namespace/2180811#2180811 – 2010-02-03 15:37:15