有没有办法(任何,无论如何)使用restsharp模拟同步请求?
我正在开发一个必须等待成功登录响应才能向前导航的应用程序,在我的代码中传递回调只是为了查看内容是一件痛苦的事。
答案 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);