Библиотека REST с поддержкой Windows Phone 7 и silverlight? - PullRequest
1 голос
/ 26 октября 2010

Существуют ли библиотеки .net REST, которые поддерживают Windows Phone 7 и silverlight?

Ответы [ 4 ]

1 голос
/ 26 октября 2010

Что именно вы имеете в виду?Вы имеете в виду библиотеку «помощник», которая может обернуть для вас вызовы REST, например RestSharp (который поддерживает Windows Phone )?

Или вы имеете в виду что-то, чтоустройство для обслуживания служб REST (не произойдет, поскольку V1 не поддерживает сокеты, среди прочих причин)?

Или вы имеете в виду что-то совсем другое?

1 голос
/ 27 октября 2010

Я имел большой успех, используя Гамак , особенно когда требовалось что-то вроде OAuth.

0 голосов
/ 12 декабря 2010

Restful-Silverlight - библиотека, созданная мной для работы с Silverlight и WP7.

Правда, вы можете просто использовать HttpWebRequest и HttpWebResponse, но эта библиотека поможет вам справиться с асинхронной природой Silverlight. Вы используете класс AsyncDelegation, чтобы организовать то, что вы хотите делать асинхронно. Я включил код ниже, чтобы показать, как вы можете использовать библиотеку для получения твитов из Twitter.

Пример использования получения твитов Restful-Silverlight из Twitter:


//silverlight 4 usage
List<string> tweets = new List<string>();
var baseUri = "http://search.twitter.com/";

//new up asyncdelegation
var restFacilitator = new RestFacilitator();
var restService = new RestService(restFacilitator, baseUri);
var asyncDelegation = new AsyncDelegation(restFacilitator, restService, baseUri);

//tell async delegation to perform an HTTP/GET against a URI and return a dynamic type
asyncDelegation.Get<dynamic>(new { url = "search.json", q = "#haiku" })
    //when the HTTP/GET is performed, execute the following lambda against the result set.
    .WhenFinished(
    result => 
    {
        textBlockTweets.Text = "";
        //the json object returned by twitter contains a enumerable collection called results
        tweets = (result.results as IEnumerable).Select(s => s.text as string).ToList();
        foreach (string tweet in tweets)
        {
             textBlockTweets.Text += 
             HttpUtility.HtmlDecode(tweet) + 
             Environment.NewLine + 
             Environment.NewLine;
        }
    });

asyncDelegation.Go();

//wp7 usage
var baseUri = "http://search.twitter.com/";
var restFacilitator = new RestFacilitator();
var restService = new RestService(restFacilitator, baseUri);
var asyncDelegation = new AsyncDelegation(restFacilitator, restService, baseUri);

asyncDelegation.Get<Dictionary<string, object>>(new { url = "search.json", q = "#haiku" })
               .WhenFinished(
               result =>
               {
                   List<string> tweets = new List();
                   textBlockTweets.Text = "";
                   foreach (var tweetObject in result["results"].ToDictionaryArray())
                   {
                       textBlockTweets.Text +=
                           HttpUtility.HtmlDecode(tweetObject["text"].ToString()) + 
                           Environment.NewLine + 
                           Environment.NewLine;
                   }
               });

asyncDelegation.Go();

0 голосов
/ 26 октября 2010

Вам не нужна библиотека. REST основан на первоначальных намерениях протокола HTTP и поддерживается классами в .NET Framework.

Вы можете использовать классы HttpWebRequest или WebClient для отправки запросов.

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