在C#中,使用async
和await
关键字可以轻松地实现异步回调。以下是一个简单的示例,展示了如何使用AJAX调用Web API并在成功时执行异步回调:
首先,确保已安装Newtonsoft.Json NuGet包,以便在C#中使用JSON。
创建一个C#控制台应用程序并添加以下代码:
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
namespace AjaxCsharpAsyncCallback
{
class Program
{
static async Task Main(string[] args)
{
string apiUrl = "https://jsonplaceholder.typicode.com/todos/1";
await CallApiAndPrintResultAsync(apiUrl);
}
static async Task CallApiAndPrintResultAsync(string apiUrl)
{
using (HttpClient httpClient = new HttpClient())
{
try
{
HttpResponseMessage response = await httpClient.GetAsync(apiUrl);
if (response.IsSuccessStatusCode)
{
string jsonResponse = await response.Content.ReadAsStringAsync();
JObject jsonObject = JObject.Parse(jsonResponse);
Console.WriteLine("异步回调结果:");
Console.WriteLine($"ID: {jsonObject["id"]}");
Console.WriteLine($"Title: {jsonObject["title"]}");
Console.WriteLine($"Completed: {jsonObject["completed"]}");
}
else
{
Console.WriteLine("请求失败,状态码:" + response.StatusCode);
}
}
catch (Exception ex)
{
Console.WriteLine("请求异常:" + ex.Message);
}
}
}
}
}
在这个示例中,我们创建了一个名为CallApiAndPrintResultAsync
的异步方法,该方法使用HttpClient
对象向指定的API发起GET请求。我们使用await
关键字等待请求完成,并将响应内容解析为JSON对象。然后,我们从JSON对象中提取所需的数据并打印到控制台。
在Main
方法中,我们调用CallApiAndPrintResultAsync
方法并传入API URL。由于CallApiAndPrintResultAsync
方法使用了async
和await
关键字,因此它将在等待API响应时暂停执行,并在收到响应后继续执行。这使得我们可以轻松地实现异步回调。