I\'m struggling to find a modern example of some asynchronous C# code that uses RestSharp with async and await. I know there\'s been a recent updat
Well, the update Haack is referring to has been made by me :) So let me show you how to use it, as it is actually very simple. Previously you had methods like ExecuteAsyncGet that would return a RestSharp custom type named RestRequestAsyncHandle. This type could not be awaited as async/await works on Task and Task return types. My pull-request added overloads to the existing async methods that return Task instances. These Task overloads have an added "Task" string added to their names, for example the Task overload for ExecuteAsyncGet is called ExecuteGetTaskAsync. For each of the new Task overloads there is one method that does not require a CancellationToken to be specified and there is one that does.
So now on to an actual example on how to use it, which will also show how to use a CancellationToken:
private static async void Main()
{
var client = new RestClient();
var request = new RestRequest("http://www.google.com");
var cancellationTokenSource = new CancellationTokenSource();
var restResponse =
await client.ExecuteTaskAsync(request, cancellationTokenSource.Token);
// Will output the HTML contents of the requested page
Console.WriteLine(restResponse.Content);
}
This will use the ExecuteTaskAsync overload that returns a Task instance. As it returns a Task, you can use the await keyword on this method and get returned the Task's returned type (in this case IRestResponse).
You can find the code here: http://dotnetfiddle.net/tDtKbL