Использование службы REST от WCF - PullRequest
14 голосов
/ 07 ноября 2008

Я не очень знаком с WCF, но думал, что научусь, пытаясь использовать существующий сервис.

Одним из API REST, о котором я думал, был Twitter API . Я думал о разработке клиента WPF, который будет выводить на экран последние 5 твитов определенного пользователя Twitter.

Мне было интересно, может кто-нибудь кратко изложить шаги, которые мне нужно предпринять в Visual Studio, чтобы использовать эти сервисы, используя WCF (классы, мастера, прокси и т. Д.). Я уже знаю, как просто вызвать их с помощью веб-запроса. и проанализировать возвращаемый XML - я действительно хочу увидеть часть WCF в работе.

Заранее спасибо anyoine, который помогает в моем образовании:)

Ответы [ 2 ]

7 голосов
/ 08 ноября 2008

Ознакомьтесь с Кирком Эвансом Создание REST Twitter-клиента с WCF . Последние улучшения WCF в .NET 3.5 SP1 упрощают многие интерфейсы RESTful.

Также ознакомьтесь с библиотекой деклараций API WCF 3.5 Twitter * с сайта MSDN.

Вот еще один пример - ВНИМАНИЕ, что по состоянию на 2/3/10 ссылка «разобрана»

6 голосов
/ 08 ноября 2008

Нет смысла использовать WCF для использования API на основе Http, такого как Twitter API. System.Net.HttpWebRequest более чем достаточно. На самом деле я подозреваю, что у вас будут некоторые трудности. Работать с WCF намного легче, если у вас есть WCF на обоих концах провода.

Однако, если REST API возвращает содержимое Atom, вы можете использовать классы System.ServiceModel.Syndication, чтобы помочь разобрать ответ.

EDIT: С тех пор как я написал этот пост, Microsoft выпустила предварительный просмотр новой клиентской библиотеки 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);

Если вы хотите получить более подробную информацию об этой клиентской библиотеке, я сейчас пишу об этом в блоге здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...