Windows Phone中的RestSharp同步请求

时间:2012-12-13 20:00:51

标签: c# rest windows-phone-7.1 restsharp

有没有办法(任何,无论如何)使用restsharp模拟同步请求?

我正在开发一个必须等​​待成功登录响应才能向前导航的应用程序,在我的代码中传递回调只是为了查看内容是一件痛苦的事。

1 个答案:

答案 0 :(得分:5)

使用Microsoft.Bcl.Async package

然后使用扩展方法:

public static class RestClientExtensions
    {
        public static Task<IRestResponse> ExecuteTask (this IRestClient restClient, RestRequest restRequest)
        {
            var tcs = new TaskCompletionSource<IRestResponse> ();
            restClient.ExecuteAsync (restRequest, (restResponse, asyncHandle) =>
            {
                if (restResponse.ResponseStatus == ResponseStatus.Error)
                    tcs.SetException (restResponse.ErrorException);
                else
                    tcs.SetResult (restResponse);
            });
            return tcs.Task;
        }
    }

您可以拨打电话:

var restResponse = await restClient.ExecuteTask(restRequest);