在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響應時暫停執行,并在收到響應后繼續執行。這使得我們可以輕松地實現異步回調。