gpt4 book ai didi

c# - 如何将 RestSharp 与异步/等待一起使用

转载 作者:IT王子 更新时间:2023-10-29 03:37:29 24 4
gpt4 key购买 nike

我正在努力寻找一些将 RestSharp 与 asyncawait 结合使用的异步 C# 代码的现代示例。我知道有 been a recent update by Haack但我不知道如何使用新方法。

此外,我如何提供取消 token 以便取消操作(例如,如果有人厌倦了等待并按下应用 UI 中的“取消”按钮)。

最佳答案

好吧,Haack 所指的更新是由我完成的:) 所以让我向您展示如何使用它,因为它实际上非常简单。以前你有类似 ExecuteAsyncGet 的方法这将返回一个名为 RestRequestAsyncHandle 的 RestSharp 自定义类型.无法等待此类型为 async/awaitTask 上工作和 Task<T>返回类型。我的拉取请求向返回 Task<T> 的现有异步方法添加了重载实例。这些Task<T>重载在其名称中添加了一个“任务”字符串,例如 Task<T> ExecuteAsyncGet 过载叫做ExecuteGetTaskAsync<T> .对于每个新的 Task<T>重载有一种方法不需要 CancellationToken有待指定,并且有一个可以做到。

那么现在来看一个关于如何使用它的实际示例,它还将展示如何使用 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);
}

这将使用 ExecuteTaskAsync返回 Task<IRestResponse> 的重载实例。因为它返回 Task , 您可以使用 await此方法上的关键字并返回 Task<T>的返回类型(在本例中为 IRestResponse )。

您可以在此处找到代码:http://dotnetfiddle.net/tDtKbL

关于c# - 如何将 RestSharp 与异步/等待一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com